From: Greg Kroah-Hartman Date: Fri, 14 Aug 2015 17:25:26 +0000 (-0700) Subject: 3.14-stable patches X-Git-Tag: v3.10.87~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d95464326efd720521693706f2f3b0357cd8e59;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch --- diff --git a/queue-3.14/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch b/queue-3.14/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch new file mode 100644 index 00000000000..8dcf6dfcb29 --- /dev/null +++ b/queue-3.14/md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch @@ -0,0 +1,43 @@ +From neilb@suse.com Fri Aug 14 10:23:56 2015 +From: NeilBrown +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 +Cc: GuoQing Jiang , Goldwyn Rodrigues , lkml +Message-ID: <20150814170421.60d40eb0@noble> + +From: NeilBrown + +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 +Reported-by: GuoQing Jiang + +--- + 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); diff --git a/queue-3.14/series b/queue-3.14/series index fa9cb49292b..d5df545b0a4 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -40,3 +40,4 @@ more-graceful-recovery-in-umount_collect.patch dcache-don-t-need-rcu-in-shrink_dentry_list.patch kvm-x86-fix-kvm_apic_has_events-to-check-for-null-pointer.patch path_openat-fix-double-fput.patch +md-bitmap-return-an-error-when-bitmap-superblock-is-corrupt.patch