diff options
author | NeilBrown <neilb@suse.de> | 2013-03-04 12:37:14 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2013-03-20 12:16:51 +1100 |
commit | ce7d363aaf1e28be8406a2976220944ca487e8ca (patch) | |
tree | 2f098d1ddf1165fffc3d9ae74c91684b78bb1072 /net | |
parent | f3378b48705154b9089affb2d2e939622aea68f1 (diff) |
md/raid5: schedule_construction should abort if nothing to do.
Since commit 1ed850f356a0a422013846b5291acff08815008b
md/raid5: make sure to_read and to_write never go negative.
It has been possible for handle_stripe_dirtying to be called
when there isn't actually any work to do.
It then calls schedule_reconstruction() which will set R5_LOCKED
on the parity block(s) even when nothing else is happening.
This then causes problems in do_release_stripe().
So add checks to schedule_reconstruction() so that if it doesn't
find anything to do, it just aborts.
This bug was introduced in v3.7, so the patch is suitable
for -stable kernels since then.
Cc: stable@vger.kernel.org (v3.7+)
Reported-by: majianpeng <majianpeng@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions