Use the proper helper to read the block device size. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- drivers/target/target_core_iblock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 31df20abe141f..ab7f5678ebc44 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c @@ -232,8 +232,9 @@ static unsigned long long iblock_emulate_read_cap_with_block_size( struct block_device *bd, struct request_queue *q) { - unsigned long long blocks_long = (div_u64(i_size_read(bd->bd_inode), - bdev_logical_block_size(bd)) - 1); + loff_t size = bdev_nr_sectors(bd) << SECTOR_SHIFT; + unsigned long long blocks_long = + div_u64(size, bdev_logical_block_size(bd)) - 1; u32 block_size = bdev_logical_block_size(bd); if (block_size == dev->dev_attrib.block_size) -- 2.30.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel