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)