]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.c
imsm: return associated uuid for spares
[thirdparty/mdadm.git] / mdadm.c
diff --git a/mdadm.c b/mdadm.c
index 8b4b5dffbacceb81dbb05fb7e438ead3052abecc..3229de4bcbf3dca20228adedc69987ab85d56d9c 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -214,6 +214,7 @@ int main(int argc, char *argv[])
                case 'o':
                case 'w':
                case 'W':
+               case Waitclean:
                case 'K': if (!mode) newmode = MISC; break;
                }
                if (mode && newmode == mode) {
@@ -360,6 +361,12 @@ int main(int argc, char *argv[])
                        writemostly = 1;
                        continue;
 
+               case O(MANAGE,'w'):
+                       /* clear write-mostly for following devices */
+                       writemostly = 2;
+                       continue;
+
+
                case O(GROW,'z'):
                case O(CREATE,'z'): /* size */
                        if (size >= 0) {
@@ -637,6 +644,7 @@ int main(int argc, char *argv[])
                        continue;
 
                case O(ASSEMBLE,'c'): /* config file */
+               case O(INCREMENTAL, 'c'):
                case O(MISC, 'c'):
                case O(MONITOR,'c'):
                        if (configfile) {
@@ -745,21 +753,6 @@ int main(int argc, char *argv[])
                        runstop = -1;
                        continue;
 
-               case O(MANAGE,'o'):
-                       if (readonly < 0) {
-                               fprintf(stderr, Name ": Cannot have both readonly and readwrite\n");
-                               exit(2);
-                       }
-                       readonly = 1;
-                       continue;
-               case O(MANAGE,'w'):
-                       if (readonly > 0) {
-                               fprintf(stderr, Name ": Cannot have both readwrite and readonly.\n");
-                               exit(2);
-                       }
-                       readonly = -1;
-                       continue;
-
                case O(MISC,'Q'):
                case O(MISC,'D'):
                case O(MISC,'E'):
@@ -770,6 +763,7 @@ int main(int argc, char *argv[])
                case O(MISC,'o'):
                case O(MISC,'w'):
                case O(MISC,'W'):
+               case O(MISC, Waitclean):
                        if (devmode && devmode != opt &&
                            (devmode == 'E' || (opt == 'E' && devmode != 'Q'))) {
                                fprintf(stderr, Name ": --examine/-E cannot be given with -%c\n",
@@ -1155,7 +1149,7 @@ int main(int argc, char *argv[])
                        break;
                }
                if (raiddisks == 0) {
-                       fprintf(stderr, Name ": no raid-disks specified.\n");
+                       fprintf(stderr, Name ": no raid-devices specified.\n");
                        rv = 1;
                        break;
                }
@@ -1179,7 +1173,7 @@ int main(int argc, char *argv[])
                        break;
                }
                if (raiddisks == 0) {
-                       fprintf(stderr, Name ": no raid-disks specified.\n");
+                       fprintf(stderr, Name ": no raid-devices specified.\n");
                        rv = 1;
                        break;
                }
@@ -1280,6 +1274,8 @@ int main(int argc, char *argv[])
                                        rv |= ExamineBitmap(dv->devname, brief, ss); continue;
                                case 'W':
                                        rv |= Wait(dv->devname); continue;
+                               case Waitclean:
+                                       rv |= WaitClean(dv->devname, verbose-quiet); continue;
                                }
                                mdfd = open_mddev(dv->devname, 1);
                                if (mdfd>=0) {