From: Guoqing Jiang Date: Thu, 20 Aug 2015 05:56:31 +0000 (+0800) Subject: mdadm: make cluster raid also could support re-add X-Git-Tag: mdadm-3.4~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bff96f736696a75dab5311b15c0f77a24a177743;p=thirdparty%2Fmdadm.git 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 Signed-off-by: NeilBrown --- diff --git a/Manage.c b/Manage.c index 494cca92..b5450dd0 100644 --- a/Manage.c +++ b/Manage.c @@ -669,6 +669,15 @@ int attempt_re_add(int fd, int tfd, struct mddev_dev *dv, 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)