]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.c
Fix some compiler warnings.
[thirdparty/mdadm.git] / mdadm.c
diff --git a/mdadm.c b/mdadm.c
index 96d32b53059f0f5dac98ab8ae4e103ae977e3b75..fb51051217f993b0680f8ee2ead34fc096bda6b6 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -253,6 +253,12 @@ int main(int argc, char *argv[])
                        exit(2);
                } else if (!mode && newmode) {
                        mode = newmode;
+                       if (mode == MISC && devs_found) {
+                               fprintf(stderr, Name ": No action given for %s in --misc mode\n",
+                                       devlist->devname);
+                               fprintf(stderr,"       Action options must come before device names\n");
+                               exit(2);
+                       }
                } else {
                        /* special case of -c --help */
                        if ((opt == 'c' || opt == ConfigFile) &&
@@ -355,12 +361,12 @@ int main(int argc, char *argv[])
                                exit(2);
                        }
                        chunk = parse_size(optarg);
-                       if (chunk < 8 || ((chunk-1)&chunk)) {
+                       if (chunk < 8 || (chunk&1)) {
                                fprintf(stderr, Name ": invalid chunk/rounding value: %s\n",
                                        optarg);
                                exit(2);
                        }
-                       /* Covert sectors to K */
+                       /* Convert sectors to K */
                        chunk /= 2;
                        continue;
 
@@ -536,6 +542,7 @@ int main(int argc, char *argv[])
 
                case O(CREATE,AssumeClean):
                case O(BUILD,AssumeClean): /* assume clean */
+               case O(GROW,AssumeClean):
                        assume_clean = 1;
                        continue;
 
@@ -1631,7 +1638,7 @@ int main(int argc, char *argv[])
                        rv = Grow_reshape(devlist->devname, mdfd, quiet, backup_file,
                                          size, level, layout_str, chunk, raiddisks,
                                          devlist->next,
-                                         force);
+                                         assume_clean, force);
                } else if (array_size < 0)
                        fprintf(stderr, Name ": no changes to --grow\n");
                break;