md/dm-raid: use new apis to suspend array
authorYu Kuai <yukuai3@huawei.com>
Tue, 10 Oct 2023 15:19:45 +0000 (23:19 +0800)
committerSong Liu <song@kernel.org>
Wed, 11 Oct 2023 01:49:50 +0000 (18:49 -0700)
Convert to use new apis, the old apis will be removed eventually.

These are not hot path, so performance is not concerned.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20231010151958.145896-7-yukuai1@huaweicloud.com
drivers/md/dm-raid.c

index 69805d37e1136da7581f741e73336368b1ef3fcf..05dd6ccf6f48d6aba09e4e669d7819c34f6d2737 100644 (file)
@@ -3244,7 +3244,7 @@ size_check:
        set_bit(MD_RECOVERY_FROZEN, &rs->md.recovery);
 
        /* Has to be held on running the array */
-       mddev_lock_nointr(&rs->md);
+       mddev_suspend_and_lock_nointr(&rs->md);
        r = md_run(&rs->md);
        rs->md.in_sync = 0; /* Assume already marked dirty */
        if (r) {
@@ -3268,7 +3268,6 @@ size_check:
                }
        }
 
-       mddev_suspend(&rs->md);
        set_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags);
 
        /* Try to adjust the raid4/5/6 stripe cache size to the stripe size */
@@ -3798,9 +3797,7 @@ static void raid_postsuspend(struct dm_target *ti)
                if (!test_bit(MD_RECOVERY_FROZEN, &rs->md.recovery))
                        md_stop_writes(&rs->md);
 
-               mddev_lock_nointr(&rs->md);
-               mddev_suspend(&rs->md);
-               mddev_unlock(&rs->md);
+               __mddev_suspend(&rs->md, false);
        }
 }
 
@@ -4012,7 +4009,7 @@ static int raid_preresume(struct dm_target *ti)
        }
 
        /* Check for any resize/reshape on @rs and adjust/initiate */
-       /* Be prepared for mddev_resume() in raid_resume() */
+       /* Be prepared for __mddev_resume() in raid_resume() */
        set_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
        if (mddev->recovery_cp && mddev->recovery_cp < MaxSector) {
                set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery);
@@ -4059,8 +4056,7 @@ static void raid_resume(struct dm_target *ti)
                clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
                mddev->ro = 0;
                mddev->in_sync = 0;
-               mddev_resume(mddev);
-               mddev_unlock(mddev);
+               mddev_unlock_and_resume(mddev);
        }
 }