diff options
| author | NeilBrown <neilb@suse.com> | 2015-07-27 11:48:52 +1000 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-08-26 19:59:54 +0200 |
| commit | cc1e92509623b71af1a21003d28acf0f41974555 (patch) | |
| tree | 4f056678d61b44c2eba6391a5283999191bcdb46 /scripts/patch-kernel | |
| parent | 44f13e626a72cd56f321523d3f57fc29dbbac9ef (diff) | |
md/raid1: extend spinlock to protect raid1_end_read_request against inconsistencies
commit 423f04d63cf421ea436bcc5be02543d549ce4b28 upstream.
raid1_end_read_request() assumes that the In_sync bits are consistent
with the ->degaded count.
raid1_spare_active updates the In_sync bit before the ->degraded count
and so exposes an inconsistency, as does error()
So extend the spinlock in raid1_spare_active() and error() to hide those
inconsistencies.
This should probably be part of
Commit: 34cab6f42003 ("md/raid1: fix test for 'was read error from
last working device'.")
as it addresses the same issue. It fixes the same bug and should go
to -stable for same reasons.
Fixes: 76073054c95b ("md/raid1: clean up read_balance.")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stefan Guendhoer <stefan@guendhoer.com>
Diffstat (limited to 'scripts/patch-kernel')
0 files changed, 0 insertions, 0 deletions
