dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/super1-ignore-failfast-flag-for-setting-device-role.patch

b7f731
From e23c2663da73f905aa5fa9800feda3d08a8026ee Mon Sep 17 00:00:00 2001
b7f731
From: Gioh Kim <gi-oh.kim@profitbricks.com>
b7f731
Date: Mon, 20 Mar 2017 10:51:56 +0100
b7f731
Subject: [RHEL7.5 PATCH 017/169] super1: ignore failfast flag for setting
b7f731
 device role
b7f731
b7f731
There is corner case for setting device role,
b7f731
if new device has failfast flag.
b7f731
The failfast flag should be ignored.
b7f731
b7f731
Signed-off-by: Gioh Kim <gi-oh.kim@profitbricks.com>
b7f731
Signed-off-by: Jack Wang <jinpu.wang@profitbricks.com>
b7f731
Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com>
b7f731
---
b7f731
 super1.c | 8 +++++---
b7f731
 1 file changed, 5 insertions(+), 3 deletions(-)
b7f731
b7f731
diff --git a/super1.c b/super1.c
b7f731
index 882cd61..f3520ac 100644
b7f731
--- a/super1.c
b7f731
+++ b/super1.c
b7f731
@@ -1491,6 +1491,7 @@ static int add_to_super1(struct supertype *st, mdu_disk_info_t *dk,
b7f731
 	struct devinfo *di, **dip;
b7f731
 	bitmap_super_t *bms = (bitmap_super_t*)(((char*)sb) + MAX_SB_SIZE);
b7f731
 	int rv, lockid;
b7f731
+	int dk_state;
b7f731
 
b7f731
 	if (bms->version == BITMAP_MAJOR_CLUSTERED && dlm_funs_ready()) {
b7f731
 		rv = cluster_get_dlmlock(&lockid);
b7f731
@@ -1501,11 +1502,12 @@ static int add_to_super1(struct supertype *st, mdu_disk_info_t *dk,
b7f731
 		}
b7f731
 	}
b7f731
 
b7f731
-	if ((dk->state & 6) == 6) /* active, sync */
b7f731
+	dk_state = dk->state & ~(1<
b7f731
+	if ((dk_state & 6) == 6) /* active, sync */
b7f731
 		*rp = __cpu_to_le16(dk->raid_disk);
b7f731
-	else if (dk->state & (1<
b7f731
+	else if (dk_state & (1<
b7f731
                 *rp = MD_DISK_ROLE_JOURNAL;
b7f731
-	else if ((dk->state & ~2) == 0) /* active or idle -> spare */
b7f731
+	else if ((dk_state & ~2) == 0) /* active or idle -> spare */
b7f731
 		*rp = MD_DISK_ROLE_SPARE;
b7f731
 	else
b7f731
 		*rp = MD_DISK_ROLE_FAULTY;
b7f731
-- 
b7f731
2.7.4
b7f731