diff options
| author | Li Lingfeng <[email protected]> | 2023-08-03 07:17:11 +0000 |
|---|---|---|
| committer | Song Liu <[email protected]> | 2023-08-15 16:40:26 +0000 |
| commit | 7eb8ff02c1df279bf7f7f29b866beb655a9eebe9 (patch) | |
| tree | cb3020d5e092ac44bef479e32bb05730aeafbc06 /drivers/md/raid1.c | |
| parent | md/raid10: fix a 'conf->barrier' leakage in raid10_takeover() (diff) | |
| download | kernel-7eb8ff02c1df279bf7f7f29b866beb655a9eebe9.tar.gz kernel-7eb8ff02c1df279bf7f7f29b866beb655a9eebe9.zip | |
md: Hold mddev->reconfig_mutex when trying to get mddev->sync_thread
Commit ba9d9f1a707f ("Revert "md: unlock mddev before reap sync_thread in
action_store"") removed the scenario of calling md_unregister_thread()
without holding mddev->reconfig_mutex, so add a lock holding check before
acquiring mddev->sync_thread by passing mdev to md_unregister_thread().
Signed-off-by: Li Lingfeng <[email protected]>
Reviewed-by: Yu Kuai <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Song Liu <[email protected]>
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index b920f9278013..c18b7c096c8d 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -3156,7 +3156,7 @@ static int raid1_run(struct mddev *mddev) * RAID1 needs at least one disk in active */ if (conf->raid_disks - mddev->degraded < 1) { - md_unregister_thread(&conf->thread); + md_unregister_thread(mddev, &conf->thread); ret = -EINVAL; goto abort; } @@ -3183,7 +3183,7 @@ static int raid1_run(struct mddev *mddev) ret = md_integrity_register(mddev); if (ret) { - md_unregister_thread(&mddev->thread); + md_unregister_thread(mddev, &mddev->thread); goto abort; } return 0; |
