提交 eb315cd0 编写于 作者: G Guoqing Jiang 提交者: Shaohua Li

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: NNeilBrown <neilb@suse.com>
Signed-off-by: NGuoqing Jiang <gqjiang@suse.com>
Signed-off-by: NShaohua Li <shli@fb.com>
上级 2c97cf13
...@@ -284,11 +284,14 @@ static void recover_bitmaps(struct md_thread *thread) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册