From: Yu Kuai <yukuai3@xxxxxxxxxx> In md_set_readonly() and do_md_stop(), md_wakeup_thread() will be called while 'reconfig_mutex' is held, however, follow up mddev_unlock() will call md_wakeup_thread() again. Hence remove the redundant md_wakeup_thread(). Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> Signed-off-by: Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> --- drivers/md/md.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/md/md.c b/drivers/md/md.c index d7b9d597b54d..a0ec01048ede 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -6397,7 +6397,6 @@ static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { did_freeze = 1; set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); - md_wakeup_thread(mddev->thread); } if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) set_bit(MD_RECOVERY_INTR, &mddev->recovery); @@ -6425,7 +6424,6 @@ static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) if (did_freeze) { clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); - md_wakeup_thread(mddev->thread); } err = -EBUSY; goto out; @@ -6440,7 +6438,6 @@ static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) set_disk_ro(mddev->gendisk, 1); clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); - md_wakeup_thread(mddev->thread); sysfs_notify_dirent_safe(mddev->sysfs_state); err = 0; } @@ -6463,7 +6460,6 @@ static int do_md_stop(struct mddev *mddev, int mode, if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { did_freeze = 1; set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); - md_wakeup_thread(mddev->thread); } if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) set_bit(MD_RECOVERY_INTR, &mddev->recovery); @@ -6490,7 +6486,6 @@ static int do_md_stop(struct mddev *mddev, int mode, if (did_freeze) { clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); - md_wakeup_thread(mddev->thread); } return -EBUSY; } -- 2.39.2