summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorkernelmail <kedacomkernel@gmail.com>2012-10-31 11:59:10 +1100
committerNeilBrown <neilb@suse.de>2012-12-13 16:41:01 +1100
commit35d78c66969fbbb51046e9f251849cf54e9ed88c (patch)
tree283ad99a530bc52d81487f1b188837d011124c87 /drivers/md
parentc02c0aeb6c728e5ad705dba86784bd553cb6f059 (diff)
downloadlinux-35d78c66969fbbb51046e9f251849cf54e9ed88c.tar.gz
linux-35d78c66969fbbb51046e9f251849cf54e9ed88c.tar.bz2
linux-35d78c66969fbbb51046e9f251849cf54e9ed88c.zip
md:Add place to update ->recovery_cp.
In resyncing, recovery_cp only updated when resync aborted or completed. But in md drives,many place used it to judge.So add a place to update. Signed-off-by: Jianpeng Ma <majianpeng@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/md.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 520056a88739..f97083476475 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7462,6 +7462,9 @@ void md_do_sync(struct md_thread *thread)
wait_event(mddev->recovery_wait,
atomic_read(&mddev->recovery_active) == 0);
mddev->curr_resync_completed = j;
+ if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) &&
+ j > mddev->recovery_cp)
+ mddev->recovery_cp = j;
set_bit(MD_CHANGE_CLEAN, &mddev->flags);
sysfs_notify(&mddev->kobj, NULL, "sync_completed");
}