]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.c
recreate journal in mdadm
[thirdparty/mdadm.git] / mdadm.c
diff --git a/mdadm.c b/mdadm.c
index 8a758eab18d95cc2952b6696785c65d97d96a123..feec3b70e4c9d0c65d946816d4c59572189dbc34 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -190,6 +190,7 @@ int main(int argc, char *argv[])
                case 'a':
                case Add:
                case AddSpare:
+               case AddJournal:
                case 'r':
                case Remove:
                case Replace:
@@ -925,6 +926,13 @@ int main(int argc, char *argv[])
                case O(MANAGE,AddSpare): /* add drive - never re-add */
                        devmode = 'S';
                        continue;
+               case O(MANAGE,AddJournal): /* add journal */
+                       if (s.journaldisks && (s.level < 4 || s.level > 6)) {
+                               pr_err("--add-journal is only supported for RAID level 4/5/6.\n");
+                               exit(2);
+                       }
+                       devmode = 'j';
+                       continue;
                case O(MANAGE,ReAdd):
                        devmode = 'A';
                        continue;
@@ -1317,6 +1325,9 @@ int main(int argc, char *argv[])
        }
 
        rv = 0;
+
+       set_hooks(); /* set hooks from libs */
+
        if (c.homecluster == NULL && (c.nodes > 0)) {
                c.homecluster = conf_get_homecluster();
                if (c.homecluster == NULL)
@@ -1346,8 +1357,6 @@ int main(int argc, char *argv[])
                /* --scan implied --brief unless -vv */
                c.brief = 1;
 
-       set_dlm_hooks(); /* get dlm funcs from libdlm_lt.so.3 */
-
        switch(mode) {
        case MANAGE:
                /* readonly, add/remove, readwrite, runstop */