diff options
| author | Guoqing Jiang <gqjiang@suse.com> | 2016-05-02 11:33:10 -0400 |
|---|---|---|
| committer | Shaohua Li <shli@fb.com> | 2016-05-04 15:39:35 -0400 |
| commit | eb315cd0933b903126996e79c12cb1eae617a036 (patch) | |
| tree | 4a79ed1bc6c91d551b5bfce23e25e8081fea7ac9 /drivers/md/md-cluster.c | |
| parent | 2c97cf138527a0f0283fcca9acf4a06216bec7da (diff) | |
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>
Diffstat (limited to 'drivers/md/md-cluster.c')
| -rw-r--r-- | drivers/md/md-cluster.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index 12fbfeced238..0d4ddf85d607 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c | |||
| @@ -284,11 +284,14 @@ static void recover_bitmaps(struct md_thread *thread) | |||
| 284 | goto dlm_unlock; | 284 | goto dlm_unlock; |
| 285 | } | 285 | } |
| 286 | if (hi > 0) { | 286 | if (hi > 0) { |
| 287 | /* TODO:Wait for current resync to get over */ | ||
| 288 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | ||
| 289 | if (lo < mddev->recovery_cp) | 287 | if (lo < mddev->recovery_cp) |
| 290 | mddev->recovery_cp = lo; | 288 | mddev->recovery_cp = lo; |
| 291 | md_check_recovery(mddev); | 289 | /* wake up thread to continue resync in case resync |
| 290 | * is not finished */ | ||
| 291 | if (mddev->recovery_cp != MaxSector) { | ||
| 292 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | ||
| 293 | md_wakeup_thread(mddev->thread); | ||
| 294 | } | ||
| 292 | } | 295 | } |
| 293 | dlm_unlock: | 296 | dlm_unlock: |
| 294 | dlm_unlock_sync(bm_lockres); | 297 | dlm_unlock_sync(bm_lockres); |
