dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

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

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