--- /dev/null
+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);