diff options
author | Neil Brown <neilb@notabene.brown> | 2008-06-28 08:31:14 +1000 |
---|---|---|
committer | Neil Brown <neilb@notabene.brown> | 2008-06-28 08:31:14 +1000 |
commit | efe311431869b40d67911820a309f9a1a41306f3 (patch) | |
tree | 3496fb7eca85cd629c19cd23afb5341007e9fa21 /init | |
parent | 8c2e870a625bd336b2e7a65a97c1836acef07322 (diff) |
Don't acknowlege that stripe-expand is complete until it really is.
We shouldn't acknowledge that a stripe has been expanded (When
reshaping a raid5 by adding a device) until the moved data has
actually been written out. However we are currently
acknowledging (by calling md_done_sync) when the POST_XOR
is complete and before the write.
So track in s.locked whether there are pending writes, and don't
call md_done_sync yet if there are.
Note: we all set R5_LOCKED on devices which are are about to
read from. This probably isn't technically necessary, but is
usually done when writing a block, and justifies the use of
s.locked here.
This bug can lead to a crash if an array is stopped while an reshape
is in progress.
Cc: <stable@kernel.org>
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions