mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 12:16:41 +00:00
block2mtd: prevent direct access of bd_inode
All we need is size, and that can be obtained via bdev_nr_bytes() Signed-off-by: Yu Kuai <yukuai3@huawei.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Link: https://lore.kernel.org/r/20240411145346.2516848-11-viro@zeniv.linux.org.uk Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
dc0fdfc855
commit
c9600c63a6
@ -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 = bdev_nr_bytes(bdev);
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user