@@ -1107,7 +1107,7 @@ static int nilfs_ioctl_set_alloc_range(struct inode *inode, void __user *argp)
goto out;
ret = -ERANGE;
- if (range[1] > i_size_read(inode->i_sb->s_bdev->bd_inode))
+ if (range[1] > (bdev_nr_sectors(inode->i_sb->s_bdev) << SECTOR_SHIFT))
goto out;
segbytes = nilfs->ns_blocks_per_segment * nilfs->ns_blocksize;
@@ -403,7 +403,7 @@ int nilfs_resize_fs(struct super_block *sb, __u64 newsize)
int ret;
ret = -ERANGE;
- devsize = i_size_read(sb->s_bdev->bd_inode);
+ devsize = bdev_nr_sectors(sb->s_bdev) << SECTOR_SHIFT;
if (newsize > devsize)
goto out;
@@ -489,7 +489,8 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
{
struct nilfs_super_block **sbp = nilfs->ns_sbp;
struct buffer_head **sbh = nilfs->ns_sbh;
- u64 sb2off = NILFS_SB2_OFFSET_BYTES(nilfs->ns_bdev->bd_inode->i_size);
+ loff_t size = bdev_nr_sectors(nilfs->ns_bdev) << SECTOR_SHIFT;
+ u64 sb2off = NILFS_SB2_OFFSET_BYTES(size);
int valid[2], swp = 0;
sbp[0] = nilfs_read_super_block(sb, NILFS_SB_OFFSET_BYTES, blocksize,
Use the proper helper to read the block device size. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/nilfs2/ioctl.c | 2 +- fs/nilfs2/super.c | 2 +- fs/nilfs2/the_nilfs.c | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-)