[dm-devel] [PATCH] dm-integrity: Always set version on superblock update

Milan Broz gmazyland at gmail.com
Wed May 22 11:29:44 UTC 2019


New integtiry bitmap mode uses the dirty flag.
This flag should not be set in older superblock versions.

The current code set it unconditionally, if the superblock
was already formatted without bitmap in older system.

This patch moves version check to one common place and does
check version on every superblock write.

Signed-off-by: Milan Broz <gmazyland at gmail.com>
---
 drivers/md/dm-integrity.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index 44e76cda087a..a2ab6a32b174 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -476,6 +476,9 @@ static int sync_rw_sb(struct dm_integrity_c *ic, int op, int op_flags)
 	io_loc.sector = ic->start;
 	io_loc.count = SB_SECTORS;
 
+	if (op == REQ_OP_WRITE)
+		sb_set_version(ic);
+
 	return dm_io(&io_req, 1, &io_loc, NULL);
 }
 
@@ -2317,7 +2320,6 @@ static void recalc_write_super(struct dm_integrity_c *ic)
 	if (dm_integrity_failed(ic))
 		return;
 
-	sb_set_version(ic);
 	r = sync_rw_sb(ic, REQ_OP_WRITE, 0);
 	if (unlikely(r))
 		dm_integrity_io_error(ic, "writing superblock", r);
-- 
2.20.1




More information about the dm-devel mailing list