aboutsummaryrefslogtreecommitdiff
path: root/kernel/freezer.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-02-25 13:18:47 +1100
committerNeilBrown <neilb@suse.de>2009-02-25 13:18:47 +1100
commit78200d45cde2a79c0d0ae0407883bb264caa3c18 (patch)
treebda4b9d8607410d01f819b6789b58d74188c915b /kernel/freezer.c
parent09b4068a7fe442efc40e9dcbcf5ff37c3338ab15 (diff)
md/raid10: Don't call bitmap_cond_end_sync when we are doing recovery.
For raid1/4/5/6, resync (fixing inconsistencies between devices) is very similar to recovery (rebuilding a failed device onto a spare). The both walk through the device addresses in order. For raid10 it can be quite different. resync follows the 'array' address, and makes sure all copies are the same. Recover walks through 'device' addresses and recreates each missing block. The 'bitmap_cond_end_sync' function allows the write-intent-bitmap (When present) to be updated to reflect a partially completed resync. It makes assumptions which mean that it does not work correctly for raid10 recovery at all. In particularly, it can cause bitmap-directed recovery of a raid10 to not recovery some of the blocks that need to be recovered. So move the call to bitmap_cond_end_sync into the resync path, rather than being in the common "resync or recovery" path. Cc: stable@kernel.org Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'kernel/freezer.c')
0 files changed, 0 insertions, 0 deletions