diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 65acc240f7ca..560be6338519 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -1010,7 +1010,8 @@ static bool wait_barrier_nolock(struct r10conf *conf) if (!read_seqretry(&conf->resync_lock, seq)) return true; - if (atomic_dec_and_test(&conf->nr_pending)) + if (atomic_dec_and_test(&conf->nr_pending) || + READ_ONCE(conf->array_freeze_pending)) wake_up_barrier(conf); return false;