All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Yibin Wang <wangyibin@huawei.com>
Cc: Jiangyiwen <jiangyiwen@huawei.com>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	Christoph Hellwig <hch@lst.de>, Mike Snitzer <snitzer@redhat.com>
Subject: Re: dm-mpath: Handling SCSI-3 PR RELEASE in multi-controller	environment
Date: Fri, 14 Oct 2016 16:51:19 +0200	[thread overview]
Message-ID: <20161014145119.GA22787@lst.de> (raw)
In-Reply-To: <57FF5194.4030402@huawei.com>

Hi Yibin,

>>> 	- For reserve/query/preempt/clear, we should return success once an
>>> 	 iteration returns successfully.
>> That's what the dm_grab_bdev_for_ioctl path does.
>
> If I understand correctly, dm_grab_bdev_for_ioctl() select a working path, 
> and
> pr_*() uses that path to do the actually work.
>
> This works for reserve/query/preempt/clear, but it may not work for 
> release.

You're right - if we had a path mapping change inbetween we might
have a problem with the unregister.  That beeing said we have an even
worse problem if the path we registered on disappeared permanently,
so we'll probably need a slightly more complex loop than the one
we have right now.

> I meant the API that callers from above block layer can use - They can not 
> call
> dm_pr_*() directly. So adding blkdev_pr_ops_{register/reserve/etc}() would 
> be
> great.

Take a look at the pNFS SCSI layout driver under fs/nfs/blocklayout
which is the currently existing in-kernel user of the API, it just
calls the block device methods directly.

What additional work would you place in the ops?  Also can you please
send me a link to your user of the API?

>
>>> 5. Support for multiple targets devices.
>>> An md device might have multiple targets. Current implementation only supports
>>> single target device.
>> That's because it is so far only intended for dm-multipath, which always
>> uses as single target.  I'm not against multi-target support, but we'll
>> need a detailed explanation of the use case.
>
> OK. Fair enough. That's rather a "good-to-have" than a "must-have".

As said I'm fine with adding as an enhancement, especially if you submit
an in-kernel user for it, but a useful opensource application also
would be more than enough of a justification

  parent reply	other threads:[~2016-10-14 14:51 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-09 13:12 dm-mpath: Handling SCSI-3 PR RELEASE in multi-controller environment wangyibin
2016-10-09 15:16 ` Christoph Hellwig
2016-10-13  9:19   ` Yibin Wang
2016-10-13 11:16     ` Yibin Wang
2016-10-14 13:48       ` Christoph Hellwig
2016-10-14 14:51     ` Christoph Hellwig [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-09-21  9:14 jiangyiwen
2016-09-21 15:04 ` Mike Snitzer
2016-09-21 17:14   ` Christoph Hellwig
2016-09-22  8:14   ` jiangyiwen
2016-09-26 16:03     ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161014145119.GA22787@lst.de \
    --to=hch@lst.de \
    --cc=dm-devel@redhat.com \
    --cc=jiangyiwen@huawei.com \
    --cc=snitzer@redhat.com \
    --cc=wangyibin@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.