Re: [RFC v4 linux-next 16/19] block2mtd: prevent direct access of bd_inode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu 22-02-24 20:45:52, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@xxxxxxxxxx>
> 
> Now that block2mtd stash the file of opened bdev, it's ok to get inode
> from the file.
> 
> Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

								Honza

> ---
>  drivers/mtd/devices/block2mtd.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
> index 97a00ec9a4d4..e9ecb3286dcb 100644
> --- a/drivers/mtd/devices/block2mtd.c
> +++ b/drivers/mtd/devices/block2mtd.c
> @@ -265,6 +265,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
>  	struct file *bdev_file;
>  	struct block_device *bdev;
>  	struct block2mtd_dev *dev;
> +	loff_t size;
>  	char *name;
>  
>  	if (!devname)
> @@ -291,7 +292,8 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
>  		goto err_free_block2mtd;
>  	}
>  
> -	if ((long)bdev->bd_inode->i_size % erase_size) {
> +	size = i_size_read(file_inode(bdev_file));
> +	if ((long)size % erase_size) {
>  		pr_err("erasesize must be a divisor of device size\n");
>  		goto err_free_block2mtd;
>  	}
> @@ -309,7 +311,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
>  
>  	dev->mtd.name = name;
>  
> -	dev->mtd.size = bdev->bd_inode->i_size & PAGE_MASK;
> +	dev->mtd.size = size & PAGE_MASK;
>  	dev->mtd.erasesize = erase_size;
>  	dev->mtd.writesize = 1;
>  	dev->mtd.writebufsize = PAGE_SIZE;
> -- 
> 2.39.2
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux