File 0002-mdadm-make-cluster-raid-also-could-support-re-add.patch of Package mdadm

From bff96f736696a75dab5311b15c0f77a24a177743 Mon Sep 17 00:00:00 2001
From: Guoqing Jiang <gqjiang@suse.com>
Date: Thu, 20 Aug 2015 13:56:31 +0800
Subject: [PATCH 2/2] mdadm: make cluster raid also could support re-add

If it is a cluster raid, the disc.state need to be
changed accordingly when do re-add.

Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: NeilBrown <neilb@suse.com>
---
 Manage.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/Manage.c
+++ b/Manage.c
@@ -643,6 +643,15 @@ int attempt_re_add(int fd, int tfd, stru
 		disc.number = mdi.disk.number;
 		disc.raid_disk = mdi.disk.raid_disk;
 		disc.state = mdi.disk.state;
+		if (array->state & (1 << MD_SB_CLUSTERED)) {
+			/* extra flags are needed when adding to a cluster as
+			 * there are two cases to distinguish
+			 */
+			if (dv->disposition == 'c')
+				disc.state |= (1 << MD_DISK_CANDIDATE);
+			else
+				disc.state |= (1 << MD_DISK_CLUSTER_ADD);
+		}
 		if (dv->writemostly == 1)
 			disc.state |= 1 << MD_DISK_WRITEMOSTLY;
 		if (dv->writemostly == 2)
openSUSE Build Service is sponsored by