md/raid5: Fix a bug about judging if the operation is syncing or replacing
authormajianpeng <[email protected]>
Sun, 1 Apr 2012 15:16:59 +0000 (01:16 +1000)
committerNeilBrown <[email protected]>
Tue, 3 Apr 2012 05:37:38 +0000 (15:37 +1000)
commitc6d2e084c7411f61f2b446d94989e5aaf9879b0f
tree521616d7bd6ff7eb38217bed1b81c5960fa2023d
parenta42f9d83b5c05dc6e678a1f0cd9767502c2c58de
md/raid5: Fix a bug about judging if the operation is syncing or replacing

When create a raid5 using assume-clean and echo check or repair to
sync_action.Then component disks did not operated IO but the raid
check/resync faster than normal.
Because the judgement in function analyse_stripe():
if (do_recovery ||
    sh->sector >= conf->mddev->recovery_cp)
s->syncing = 1;
else
s->replacing = 1;
When check or repair,the recovery_cp == MaxSectore,so syncing equal zero
not one.

This bug was introduced by commit 9a3e1101b827
    md/raid5:  detect and handle replacements during recovery.
so this patch is suitable for 3.3-stable.

Cc: [email protected]
Signed-off-by: majianpeng <[email protected]>
Signed-off-by: NeilBrown <[email protected]>
drivers/md/raid5.c