[Drbd-dev] [PATCH 4/5] block: make blkdev_get/put() handle exclusive access
Christoph Hellwig
hch at infradead.org
Wed Nov 3 17:10:59 CET 2010
On Mon, Nov 01, 2010 at 05:15:28PM +0100, Tejun Heo wrote:
> * blkdev_get() is extended to include exclusive access management.
> @holder argument is added and, if is @FMODE_EXCL specified, it will
> gain exclusive access atomically w.r.t. other exclusive accesses.
>
> * blkdev_put() is similarly extended. It now takes @mode argument and
> if @FMODE_EXCL is set, it releases an exclusive access. Also, when
> the last exclusive claim is released, the holder/slave symlinks are
> removed automatically.
Could we get rid of FMODE_EXCL and just make a non-NULL holder field
mean to open it exlusively (and pass a holder to the blkdev_put to
release it)?
> * bd_link_disk_holder() remains the same but bd_unlink_disk_holder()
> is no longer necessary and removed.
That's a rather asymetric interface. What about having
blkdev_get_stacked that require a gendisk as holder and set up the
links underneath?
> open_bdev_exclusive() and open_by_devnum() can use further cleanup -
> rename to blkdev_get_by_path() and blkdev_get_by_devt() and drop
> special features. Well, let's leave them for another day.
s/blkdev_get_by_devt/blkdev_get_by_dev/
And yes, that rename is a good idea and should go in ASAP after this
patch.
More information about the drbd-dev
mailing list