]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Aug 2015 17:25:21 +0000 (10:25 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Aug 2015 17:25:21 +0000 (10:25 -0700)
added patches:
md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch

queue-3.10/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch b/queue-3.10/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch
new file mode 100644 (file)
index 0000000..8dcf6df
--- /dev/null
@@ -0,0 +1,43 @@
+From neilb@suse.com  Fri Aug 14 10:23:56 2015
+From: NeilBrown <neilb@suse.com>
+Date: Fri, 14 Aug 2015 17:04:21 +1000
+Subject: md/bitmap: return an error when bitmap superblock is corrupt.
+To: stable@vger.kernel.org, linux-raid <linux-raid@vger.kernel.org>
+Cc: GuoQing Jiang <gqjiang@suse.com>, Goldwyn Rodrigues <rgoldwyn@suse.com>, lkml <linux-kernel@vger.kernel.org>
+Message-ID: <20150814170421.60d40eb0@noble>
+
+From: NeilBrown <neilb@suse.com>
+
+commit b97e92574c0bf335db1cd2ec491d8ff5cd5d0b49 upstream
+    Use separate bitmaps for each nodes in the cluster
+
+bitmap_read_sb() validates the bitmap superblock that it reads in.
+If it finds an inconsistency like a bad magic number or out-of-range
+version number, it prints an error and returns, but it incorrectly
+returns zero, so the array is still assembled with the (invalid) bitmap.
+
+This means it could try to use a bitmap with a new version number which
+it therefore does not understand.
+
+This bug was introduced in 3.5 and fix as part of a larger patch in 4.1.
+So the patch is suitable for any -stable kernel in that range.
+
+Fixes: 27581e5ae01f ("md/bitmap: centralise allocation of bitmap file pages.")
+Signed-off-by: NeilBrown <neilb@suse.com>
+Reported-by: GuoQing Jiang <gqjiang@suse.com>
+
+---
+ drivers/md/bitmap.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/md/bitmap.c
++++ b/drivers/md/bitmap.c
+@@ -564,6 +564,8 @@ static int bitmap_read_sb(struct bitmap
+       if (err)
+               return err;
++      err = -EINVAL;
++
+       sb = kmap_atomic(sb_page);
+       chunksize = le32_to_cpu(sb->chunksize);
index f531780bd98f6a8d341575e39b4bcb0d069ef3dc..43c71f4869153f79695453db9274c2c950430941 100644 (file)
@@ -31,3 +31,4 @@ signalfd-fix-information-leak-in-signalfd_copyinfo.patch
 signal-fix-information-leak-in-copy_siginfo_to_user.patch
 signal-fix-information-leak-in-copy_siginfo_from_user32.patch
 kvm-x86-fix-kvm_apic_has_events-to-check-for-null-pointer.patch
+md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch