md-cluster: wake up thread to continue recovery
In recovery case, we need to set MD_RECOVERY_NEEDED and wake up thread only if recover is not finished. Reviewed-by: NeilBrown <neilb@suse.com> Signed-off-by: Guoqing Jiang <gqjiang@suse.com> Signed-off-by: Shaohua Li <shli@fb.com>
This commit is contained in:
parent
2c97cf1385
commit
eb315cd093
|
@ -284,11 +284,14 @@ static void recover_bitmaps(struct md_thread *thread)
|
||||||
goto dlm_unlock;
|
goto dlm_unlock;
|
||||||
}
|
}
|
||||||
if (hi > 0) {
|
if (hi > 0) {
|
||||||
/* TODO:Wait for current resync to get over */
|
|
||||||
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
|
||||||
if (lo < mddev->recovery_cp)
|
if (lo < mddev->recovery_cp)
|
||||||
mddev->recovery_cp = lo;
|
mddev->recovery_cp = lo;
|
||||||
md_check_recovery(mddev);
|
/* wake up thread to continue resync in case resync
|
||||||
|
* is not finished */
|
||||||
|
if (mddev->recovery_cp != MaxSector) {
|
||||||
|
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
||||||
|
md_wakeup_thread(mddev->thread);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dlm_unlock:
|
dlm_unlock:
|
||||||
dlm_unlock_sync(bm_lockres);
|
dlm_unlock_sync(bm_lockres);
|
||||||
|
|
Loading…
Reference in New Issue