[dm-devel] [PATCH] dm raid: constructor fails on non-zero incompat_features

heinzm at redhat.com heinzm at redhat.com
Wed Aug 3 15:47:04 UTC 2016


From: Heinz Mauelshagen <heinzm at redhat.com>

When lvm2 userspace requests a RaidLV repair, it sets
the rebuild constructor flag on the new, replaced DataLVs
but does not clear the respective MetaLVs. Hence the
superblock loaded from such new MetaLVs may have a non-zero
incompat_features member and the constructor will fail on
checking it to be zero.

Solve by initializing the incompat_features member properly.

Signed-off-by: Heinz Mauelshagen <heinzm at redhat.com>
---
 drivers/md/dm-raid.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index 8498354..2b1279c 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -1960,6 +1960,7 @@ static void super_sync(struct mddev *mddev, struct md_rdev *rdev)
 	sb->data_offset = cpu_to_le64(rdev->data_offset);
 	sb->new_data_offset = cpu_to_le64(rdev->new_data_offset);
 	sb->sectors = cpu_to_le64(rdev->sectors);
+	sb->incompat_features = cpu_to_le32(0);
 
 	/* Zero out the rest of the payload after the size of the superblock */
 	memset(sb + 1, 0, rdev->sb_size - sizeof(*sb));
-- 
2.5.5




More information about the dm-devel mailing list