Re: [PATCH 01/32] block: Provide blkdev_get_handle_* functions
Jan Kara <[email protected]>
| Newsgroups | org.kernel.vger.reiserfs-devel,dev.linux.lists.dm-devel,dev.linux.lists.drbd-dev,net.sourceforge.lists.linux-f2fs-devel,org.infradead.lists.linux-mtd,org.infradead.lists.linux-nvme,org.kernel.vger.linux-bcache,org.kernel.vger.linux-block,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-nilfs,org.kernel.vger.linux-pm,org.kernel.vger.linux-raid,org.kernel.vger.linux-s390,org.kernel.vger.linux-scsi,org.kernel.vger.linux-xfs,org.kernel.vger.target-devel,org.kvack.linux-mm,org.ozlabs.lists.linux-erofs,org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <20230705161225.cwig5a3mo6oz7lew@quack3> |
On Tue 04-07-23 07:06:26, Bart Van Assche wrote:
> On 7/4/23 05:21, Jan Kara wrote:
> > +struct bdev_handle {
> > + struct block_device *bdev;
> > + void *holder;
> > +};
>
> Please explain in the patch description why a holder pointer is introduced
> in struct bdev_handle and how it relates to the bd_holder pointer in struct
> block_device. Is one of the purposes of this patch series perhaps to add
> support for multiple holders per block device?
No. The reason for adding holder to struct bdev_handle is that it is an
argument blkdev_put() needs. Currently, every user of blkdev_put() has to
remember what it has passed as 'holder' to blkdev_get_by_*() call and pass
that to blkdev_put(). With struct bdev_handle this will happen
automatically. This is already explained in the changelog of this patch:
"Create struct bdev_handle that contains all parameters that need to be
passed to blkdev_put()..."
If it was only about holder, the intrusive patches would not be warranted
but as the description also says:
"This will eventually allow us to pass one more argument to blkdev_put()
without too much hassle."
Because we will additionaly need to propagate the 'mode' argument used at
open to blkdev_put().
Honza
--
Jan Kara <jack-IBi9RG/[email protected]>
SUSE Labs, CR