Message ID | 20211013051042.1065752-8-hch@lst.de (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | Mike Snitzer |
Headers | show |
Series | [01/29] bcache: remove bdev_sectors | expand |
On 13.10.21 07:10, Christoph Hellwig wrote: > Use the proper helper to read the block device size. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > 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); To enhance readability, would it make sense to shift the new lines behind "u32 block_size = ...", so block_size can be used in div_u64 instead of using bdev_logical_block_size twice? > > if (block_size == dev->dev_attrib.block_size) > -- dm-devel mailing list dm-devel@redhat.com https://listman.redhat.com/mailman/listinfo/dm-devel
On 10/12/2021 10:10 PM, Christoph Hellwig wrote: > Use the proper helper to read the block device size. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- Bodo's comment is good for the code reliability. Either way, looks good. Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> -- dm-devel mailing list dm-devel@redhat.com https://listman.redhat.com/mailman/listinfo/dm-devel
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)
Use the proper helper to read the block device size. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/target/target_core_iblock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)