[dm-devel] [PATCH] dm-bufio: subtract the number of initial sectors in dm_bufio_get_device_size
Mikulas Patocka
mpatocka at redhat.com
Tue Feb 23 11:42:00 UTC 2021
dm_bufio_get_device_size returns returns the device size in blocks. Before
returning the value, we must subtract the nubmer of starting sectors. The
number of starting sectos may not be divisible by block size.
Note that currently, no target is using dm_bufio_set_sector_offset and
dm_bufio_get_device_size simultaneously, so this patch has no effect.
However, an upcoming patch that fixes dm-verity-fec needs this change.
Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
Cc: stable at vger.kernel.org
---
drivers/md/dm-bufio.c | 4 ++++
1 file changed, 4 insertions(+)
Index: linux-2.6/drivers/md/dm-bufio.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-bufio.c 2021-01-22 17:28:39.000000000 +0100
+++ linux-2.6/drivers/md/dm-bufio.c 2021-02-23 12:35:16.000000000 +0100
@@ -1526,6 +1526,10 @@ EXPORT_SYMBOL_GPL(dm_bufio_get_block_siz
sector_t dm_bufio_get_device_size(struct dm_bufio_client *c)
{
sector_t s = i_size_read(c->bdev->bd_inode) >> SECTOR_SHIFT;
+ if (s >= c->start)
+ s -= c->start;
+ else
+ s = 0;
if (likely(c->sectors_per_block_bits >= 0))
s >>= c->sectors_per_block_bits;
else
More information about the dm-devel
mailing list