Re: [PATCH 01/32] block: Provide blkdev_get_handle_* functions

Jan Kara <[email protected]>
Newsgroups gmane.linux.kernel.drbd.devel,gmane.linux.kernel.device-mapper.devel,gmane.linux.scsi.target.devel,gmane.linux.drivers.mtd,gmane.comp.file-systems.nilfs.user,gmane.linux.scsi,gmane.comp.emulators.xen.devel,gmane.linux.power-management.general,gmane.comp.file-systems.reiserfs.general,gmane.linux.block,gmane.linux.kernel.bcache.devel,gmane.linux.raid,gmane.linux.nfs,gmane.comp.file-systems.ext4,gmane.linux.kernel.mm,gmane.linux.file-systems.f2fs,gmane.comp.file-systems.ocfs2.devel,gmane.linux.file-systems,gmane.comp.file-systems.btrfs
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.