Re: [PATCH 4/5] block: make blkdev_get/put() handle exclusive access

From: Christoph Hellwig
Date: Wed Nov 03 2010 - 12:11:43 EST


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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/