[PATCH 23/45] block: remove i_bdev
Tejun Heo
tj at kernel.org
Tue Nov 24 14:37:05 EST 2020
On Tue, Nov 24, 2020 at 02:27:29PM +0100, Christoph Hellwig wrote:
> Switch the block device lookup interfaces to directly work with a dev_t
> so that struct block_device references are only acquired by the
> blkdev_get variants (and the blk-cgroup special case). This means that
> we not don't need an extra reference in the inode and can generally
^
now
> simplify handling of struct block_device to keep the lookups contained
> in the core block layer code.
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
...
> @@ -1689,14 +1599,12 @@ static int blkdev_open(struct inode * inode, struct file * filp)
> if ((filp->f_flags & O_ACCMODE) == 3)
> filp->f_mode |= FMODE_WRITE_IOCTL;
>
> - bdev = bd_acquire(inode);
> - if (bdev == NULL)
> - return -ENOMEM;
> -
> + bdev = blkdev_get_by_dev(inode->i_rdev, filp->f_mode, filp);
> + if (IS_ERR(bdev))
> + return PTR_ERR(bdev);
> filp->f_mapping = bdev->bd_inode->i_mapping;
> filp->f_wb_err = filemap_sample_wb_err(filp->f_mapping);
> -
> - return blkdev_get(bdev, filp->f_mode, filp);
> + return 0;
> }
I was wondering whether losing the stale bdev flushing in bd_acquire() would
cause user-visible behavior changes but can't see how it would given that
userland has no way of holding onto a specific instance of block inode.
Maybe it's something worth mentioning in the commit message?
Other than that, for the block part:
Acked-by: Tejun Heo <tj at kernel.org>
Thanks.
--
tejun
More information about the linux-mtd
mailing list