From: Goldwyn Rodrigues Date: Wed, 26 Aug 2015 16:35:21 +0000 (-0500) Subject: Fix --incremental handling on cluster array. X-Git-Tag: mdadm-3.4~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d9202e301f0fd1b6d4021f11f3d3f9bcfb053dd;p=thirdparty%2Fmdadm.git Fix --incremental handling on cluster array. Commit 06bd679317a2 ("Skip clustered devices in incremental") disabled incremental completely on clustered arrays. What we really want is that mdadm should not start or create a clustered array but still be able to add or readd to an existing device. This would enable udev scripts to automatically add or re-add a device after transient errors. Signed-off-by: NeilBrown --- diff --git a/Incremental.c b/Incremental.c index 304cc6d7..43fddfdc 100644 --- a/Incremental.c +++ b/Incremental.c @@ -231,11 +231,6 @@ int Incremental(struct mddev_dev *devlist, struct context *c, devname); goto out; } - /* Skip the clustered ones. This should be started by - * clustering resource agents - */ - if (info.array.state & (1 << MD_SB_CLUSTERED)) - goto out; /* 3a/ if not, check for homehost match. If no match, continue * but don't trust the 'name' in the array. Thus a 'random' minor @@ -317,6 +312,12 @@ int Incremental(struct mddev_dev *devlist, struct context *c, if (mdfd < 0) { + /* Skip the clustered ones. This should be started by + * clustering resource agents + */ + if (info.array.state & (1 << MD_SB_CLUSTERED)) + goto out; + /* Couldn't find an existing array, maybe make a new one */ mdfd = create_mddev(match ? match->devname : NULL, name_to_use, c->autof, trustworthy, chosen_name);