[dm-devel] [PATCH] dm-integrity: fix invalid table returned

Mikulas Patocka mpatocka at redhat.com
Mon Feb 17 13:11:35 UTC 2020


If the flag SB_FLAG_RECALCULATE is present in the superblock, but it was
not specified on the command line (i.e. ic->recalculate_flag is false),
dm-integrity would return invalid table line - the reported number of
arguments would not match the real number.

This patch fixes the argument mismatch.

Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
Reported-by: Ondrej Kozina <okozina at redhat.com>
Cc: stable at vger.kernel.org	# v5.2+
Fixes: 468dfca38b1a ("dm integrity: add a bitmap mode")

---
 drivers/md/dm-integrity.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/drivers/md/dm-integrity.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-integrity.c	2020-02-14 17:19:16.000000000 +0100
+++ linux-2.6/drivers/md/dm-integrity.c	2020-02-17 13:58:05.000000000 +0100
@@ -2982,7 +2982,7 @@ static void dm_integrity_status(struct d
 			DMEMIT(" meta_device:%s", ic->meta_dev->name);
 		if (ic->sectors_per_block != 1)
 			DMEMIT(" block_size:%u", ic->sectors_per_block << SECTOR_SHIFT);
-		if (ic->recalculate_flag)
+		if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING))
 			DMEMIT(" recalculate");
 		DMEMIT(" journal_sectors:%u", ic->initial_sectors - SB_SECTORS);
 		DMEMIT(" interleave_sectors:%u", 1U << ic->sb->log2_interleave_sectors);




More information about the dm-devel mailing list