]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dm raid: add support for resync w/o metadata devices
authorHeinz Mauelshagen <heinzm@redhat.com>
Mon, 16 Jun 2025 14:50:05 +0000 (16:50 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Mon, 23 Jun 2025 10:35:37 +0000 (12:35 +0200)
Target does not honour the "sync" argument when activated w/o metadata
devices, e.g. with table line:
"0 $(blockdev --getsz $data1) raid raid1 2 0 sync 2 - $data1 - $data2".

Fix this to support temporary, transient raid devices useful
for data duplication.

Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-raid.c

index d296770478b299abb0e81372c27278a90d946bb4..c4fa8e0e76d28532b4a048491d57424517ffa0ef 100644 (file)
@@ -2532,6 +2532,10 @@ static int analyse_superblocks(struct dm_target *ti, struct raid_set *rs)
        struct md_rdev *rdev, *freshest;
        struct mddev *mddev = &rs->md;
 
+       /* Respect resynchronization requested with "sync" argument. */
+       if (test_bit(__CTR_FLAG_SYNC, &rs->ctr_flags))
+               set_bit(MD_ARRAY_FIRST_USE, &mddev->flags);
+
        freshest = NULL;
        rdev_for_each(rdev, mddev) {
                if (test_bit(Journal, &rdev->flags))