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>
This commit is contained in:
parent
9d9202e301
commit
bff96f7366
9
Manage.c
9
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)
|
||||
|
|
Loading…
Reference in New Issue