Fix mdadm soft lockup and crash (rhbz 1033971)
This commit is contained in:
parent
1adede449e
commit
6fd82f26c2
|
@ -762,6 +762,9 @@ Patch25159: usbnet-fix-status-interrupt-urb-handling.patch
|
|||
Patch25161: inet-prevent-leakage-of-uninitialized-memory-to-user.patch
|
||||
Patch25162: inet-fix-addr_len-msg_namelen-assignment-in-recv_error-and-rxpmtu-functions.patch
|
||||
|
||||
#rhbz 1033971
|
||||
Patch25163: md-test-mddev-flags-more-safely-in-md_check_recovery.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
|
@ -1492,6 +1495,9 @@ ApplyPatch usbnet-fix-status-interrupt-urb-handling.patch
|
|||
ApplyPatch inet-prevent-leakage-of-uninitialized-memory-to-user.patch
|
||||
ApplyPatch inet-fix-addr_len-msg_namelen-assignment-in-recv_error-and-rxpmtu-functions.patch
|
||||
|
||||
#rhbz 1033971
|
||||
ApplyPatch md-test-mddev-flags-more-safely-in-md_check_recovery.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
|
@ -2296,6 +2302,7 @@ fi
|
|||
# || ||
|
||||
%changelog
|
||||
* Sat Nov 30 2013 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix mdadm soft lockup and crash (rhbz 1033971)
|
||||
- CVE-2013-6405 net: leak of uninited mem to userspace via recv syscalls (rhbz 1035875 1035887)
|
||||
|
||||
* Fri Nov 29 2013 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
Bugzilla: 1033971
|
||||
Upstream-status: 3.13 (should hit 3.12 stable)
|
||||
|
||||
From 142d44c310819e1965ca70b4d55d7679f5797e25 Mon Sep 17 00:00:00 2001
|
||||
From: NeilBrown <neilb@suse.de>
|
||||
Date: Thu, 28 Nov 2013 10:34:18 +1100
|
||||
Subject: [PATCH] md: test mddev->flags more safely in md_check_recovery.
|
||||
|
||||
commit 7a0a5355cbc71efa md: Don't test all of mddev->flags at once.
|
||||
made most tests on mddev->flags safer, but missed one.
|
||||
|
||||
When
|
||||
commit 260fa034ef7a4ff8b7306 md: avoid deadlock when dirty buffers during md_stop.
|
||||
added MD_STILL_CLOSED, this caused md_check_recovery to misbehave.
|
||||
It can think there is something to do but find nothing. This can
|
||||
lead to the md thread spinning during array shutdown.
|
||||
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=65721
|
||||
|
||||
Reported-and-tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Fixes: 260fa034ef7a4ff8b7306
|
||||
Cc: stable@vger.kernel.org (3.12)
|
||||
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||
---
|
||||
drivers/md/md.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/md/md.c b/drivers/md/md.c
|
||||
index b6b7a28..e60cebf 100644
|
||||
--- a/drivers/md/md.c
|
||||
+++ b/drivers/md/md.c
|
||||
@@ -7777,7 +7777,7 @@ void md_check_recovery(struct mddev *mddev)
|
||||
if (mddev->ro && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery))
|
||||
return;
|
||||
if ( ! (
|
||||
- (mddev->flags & ~ (1<<MD_CHANGE_PENDING)) ||
|
||||
+ (mddev->flags & MD_UPDATE_SB_FLAGS & ~ (1<<MD_CHANGE_PENDING)) ||
|
||||
test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) ||
|
||||
test_bit(MD_RECOVERY_DONE, &mddev->recovery) ||
|
||||
(mddev->external == 0 && mddev->safemode == 1) ||
|
||||
--
|
||||
1.8.3.1
|
||||
|
Loading…
Reference in New Issue