]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.c
Set home-cluster while creating an array
[thirdparty/mdadm.git] / mdadm.c
diff --git a/mdadm.c b/mdadm.c
index 2ab006ab6bc1ac786f5f15dc6cc7f18f5e291470..1a32328e02a1bdb1a0bdbc119acdbd4b449950e3 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -596,6 +596,13 @@ int main(int argc, char *argv[])
                                exit(2);
                        }
                        continue;
+               case O(CREATE, ClusterName):
+                       c.homecluster = optarg;
+                       if (strlen(c.homecluster) > 64) {
+                               pr_err("Cluster name too big.\n");
+                               exit(ERANGE);
+                       }
+                       continue;
                case O(CREATE,'x'): /* number of spare (eXtra) disks */
                        if (s.sparedisks) {
                                pr_err("spare-devices set twice: %d and %s\n",
@@ -1276,6 +1283,16 @@ int main(int argc, char *argv[])
                c.require_homehost = 0;
        }
 
+       if (c.homecluster == NULL && (c.nodes > 0)) {
+               c.homecluster = conf_get_homecluster();
+               if (c.homecluster == NULL)
+                       rv = get_cluster_name(&c.homecluster);
+               if (rv != 0) {
+                       pr_err("The md can't get cluster name\n");
+                       exit(1);
+               }
+       }
+
        if (c.backup_file && data_offset != INVALID_SECTORS) {
                pr_err("--backup-file and --data-offset are incompatible\n");
                exit(2);