File 0242-Assemble-really-don-t-assemble-IMSM-array-without-OR.patch of Package mdadm.5365

From 8360760457860206e2719c069b30552e79018c59 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.com>
Date: Mon, 3 Aug 2015 16:06:51 +1000
Subject: [PATCH] Assemble: really don't assemble IMSM array without OROM.
References: bsc#939748 bsc#937363

Previous patch missed on case.

Also print more useful information when rejecting
a device with IMSM metadata.

Signed-off-by: NeilBrown <neilb@suse.com>
---
 Assemble.c    | 4 +++-
 Incremental.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Assemble.c b/Assemble.c
index 06e122d..2925733 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -250,7 +250,9 @@ static int select_devices(struct mddev_dev *devlist,
 					pr_err("no recogniseable superblock on %s\n",
 					       devname);
 				tmpdev->used = 2;
-			} else if (tst->ss->load_super(tst,dfd, NULL)) {
+			} else if ((tst->ignore_hw_compat = 0),
+				   tst->ss->load_super(tst, dfd,
+						       report_mismatch ? devname : NULL)) {
 				if (report_mismatch)
 					pr_err("no RAID superblock on %s\n",
 					       devname);
diff --git a/Incremental.c b/Incremental.c
index 8857619..41876b9 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -205,7 +205,7 @@ int Incremental(struct mddev_dev *devlist, struct context *c,
 	st->ignore_hw_compat = 0;
 
 	if (st->ss->compare_super == NULL ||
-	    st->ss->load_super(st, dfd, NULL)) {
+	    st->ss->load_super(st, dfd, c->verbose >= 0 ? devname : NULL)) {
 		if (c->verbose >= 0)
 			pr_err("no RAID superblock on %s.\n",
 				devname);
-- 
2.16.1

openSUSE Build Service is sponsored by