Whamcloud - gitweb
LU-13314 utils: fix lfs find time calculation margin
[fs/lustre-release.git] / lustre / utils / mkfs_lustre.c
index a9faace..5e70ed6 100644 (file)
@@ -23,7 +23,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2016, Intel Corporation.
+ * Copyright (c) 2011, 2017, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -62,7 +62,7 @@
 #include <ctype.h>
 #include <linux/lnet/nidstr.h>
 #include <linux/lnet/lnetctl.h>
-#include <linux/lustre/lustre_param.h>
+#include <linux/lustre/lustre_user.h>
 #include <linux/lustre/lustre_ver.h>
 
 #include "mount_utils.h"
@@ -70,7 +70,7 @@
 char *progname;
 int verbose = 1;
 int version;
-static int print_only = 0;
+static int print_only;
 
 #ifdef HAVE_LDISKFS_OSD
 #define FSLIST_LDISKFS "ldiskfs"
@@ -168,7 +168,6 @@ void usage(FILE *out)
                "\t\t\texit\n"
                "\t\t--quiet\n",
                (int)sizeof(((struct lustre_disk_data *)0)->ldd_userdata));
-       return;
 }
 
 /* ==================== Lustre config functions =============*/
@@ -177,32 +176,31 @@ void print_ldd(char *str, struct mkfs_opts *mop)
 {
        struct lustre_disk_data *ldd = &mop->mo_ldd;
 
-        printf("\n   %s:\n", str);
-        printf("Target:     %s\n", ldd->ldd_svname);
-        if (ldd->ldd_svindex == INDEX_UNASSIGNED)
-                printf("Index:      unassigned\n");
-        else
-                printf("Index:      %d\n", ldd->ldd_svindex);
-        if (ldd->ldd_uuid[0])
-                printf("UUID:       %s\n", (char *)ldd->ldd_uuid);
-        printf("Lustre FS:  %s\n", ldd->ldd_fsname);
-        printf("Mount type: %s\n", MT_STR(ldd));
-        printf("Flags:      %#x\n", ldd->ldd_flags);
-       printf("              (%s%s%s%s%s%s%s%s%s)\n",
-               IS_MDT(ldd) ? "MDT ":"",
-               IS_OST(ldd) ? "OST ":"",
-               IS_MGS(ldd) ? "MGS ":"",
-               ldd->ldd_flags & LDD_F_NEED_INDEX ? "needs_index ":"",
-               ldd->ldd_flags & LDD_F_VIRGIN     ? "first_time ":"",
-               ldd->ldd_flags & LDD_F_UPDATE     ? "update ":"",
-               ldd->ldd_flags & LDD_F_WRITECONF  ? "writeconf ":"",
-               ldd->ldd_flags & LDD_F_NO_PRIMNODE? "no_primnode ":"",
-               ldd->ldd_flags & LDD_F_UPGRADE14  ? "upgrade1.4 ":"");
-        printf("Persistent mount opts: %s\n", ldd->ldd_mount_opts);
+       printf("\n   %s:\n", str);
+       printf("Target:     %s\n", ldd->ldd_svname);
+       if (ldd->ldd_svindex == INDEX_UNASSIGNED)
+               printf("Index:      unassigned\n");
+       else
+               printf("Index:      %d\n", ldd->ldd_svindex);
+       if (ldd->ldd_uuid[0])
+               printf("UUID:       %s\n", (char *)ldd->ldd_uuid);
+       printf("Lustre FS:  %s\n", ldd->ldd_fsname);
+       printf("Mount type: %s\n", MT_STR(ldd));
+       printf("Flags:      %#x\n", ldd->ldd_flags);
+       printf("              (%s%s%s%s%s%s%s%s)\n",
+              IS_MDT(ldd) ? "MDT " : "",
+              IS_OST(ldd) ? "OST " : "",
+              IS_MGS(ldd) ? "MGS " : "",
+              ldd->ldd_flags & LDD_F_NEED_INDEX ? "needs_index " : "",
+              ldd->ldd_flags & LDD_F_VIRGIN     ? "first_time " : "",
+              ldd->ldd_flags & LDD_F_UPDATE     ? "update " : "",
+              ldd->ldd_flags & LDD_F_WRITECONF  ? "writeconf " : "",
+              ldd->ldd_flags & LDD_F_NO_PRIMNODE ? "no_primnode " : "");
+       printf("Persistent mount opts: %s\n", ldd->ldd_mount_opts);
        osd_print_ldd_params(mop);
-        if (ldd->ldd_userdata[0])
-                printf("Comment: %s\n", ldd->ldd_userdata);
-        printf("\n");
+       if (ldd->ldd_userdata[0])
+               printf("Comment: %s\n", ldd->ldd_userdata);
+       printf("\n");
 }
 
 void set_defaults(struct mkfs_opts *mop)
@@ -230,10 +228,10 @@ static bool server_make_name(__u32 flags, __u16 index, const char *fs,
        if (flags & (LDD_F_SV_TYPE_MDT | LDD_F_SV_TYPE_OST)) {
                if (!(flags & LDD_F_SV_ALL))
                        snprintf(name_buf, name_buf_size, "%.8s%c%s%04x", fs,
-                               (flags & LDD_F_VIRGIN) ? ':' :
-                               ((flags & LDD_F_WRITECONF) ? '=' : '-'),
-                               (flags & LDD_F_SV_TYPE_MDT) ? "MDT" : "OST",
-                               index);
+                                (flags & LDD_F_VIRGIN) ? ':' :
+                                ((flags & LDD_F_WRITECONF) ? '=' : '-'),
+                                (flags & LDD_F_SV_TYPE_MDT) ? "MDT" : "OST",
+                                 index);
        } else if (flags & LDD_F_SV_TYPE_MGS) {
                snprintf(name_buf, name_buf_size, "MGS");
        } else {
@@ -245,9 +243,9 @@ static bool server_make_name(__u32 flags, __u16 index, const char *fs,
 
 static inline void badopt(const char *opt, char *type)
 {
-        fprintf(stderr, "%s: '--%s' only valid for %s\n",
-                progname, opt, type);
-        usage(stderr);
+       fprintf(stderr, "%s: '--%s' only valid for %s\n",
+               progname, opt, type);
+       usage(stderr);
 }
 
 #ifdef TUNEFS
@@ -293,8 +291,7 @@ static int erase_param(const char *const buf, const char *const param,
                        return EINVAL;
                strncpy(&search[1], param, keyend - param + 1);
        } else {
-               strncpy(&search[1], param, strlen(param));
-               strncat(search, "=", 1);
+               snprintf(search + 1, sizeof(search) - 1, "%s=", param);
        }
 
        while (1) {
@@ -320,93 +317,91 @@ static int erase_param(const char *const buf, const char *const param,
 #define MAXNIDSTR 1024
 static char *convert_hostnames(char *s1)
 {
-        char *converted, *s2 = 0, *c, *end, sep;
-        int left = MAXNIDSTR;
-        lnet_nid_t nid;
-
-        converted = malloc(left);
-        if (converted == NULL) {
-                return NULL;
-        }
-
-        end = s1 + strlen(s1);
-        c = converted;
-        while ((left > 0) && (s1 < end)) {
-                s2 = strpbrk(s1, ",:");
-                if (!s2)
-                        s2 = end;
-                sep = *s2;
-                *s2 = '\0';
-                nid = libcfs_str2nid(s1);
+       char *converted, *s2 = 0, *c, *end, sep;
+       int left = MAXNIDSTR;
+       lnet_nid_t nid;
+
+       converted = malloc(left);
+       if (!converted)
+               return NULL;
+
+       end = s1 + strlen(s1);
+       c = converted;
+       while ((left > 0) && (s1 < end)) {
+               s2 = strpbrk(s1, ",:");
+               if (!s2)
+                       s2 = end;
+               sep = *s2;
+               *s2 = '\0';
+               nid = libcfs_str2nid(s1);
                *s2 = sep;
 
-                if (nid == LNET_NID_ANY) {
+               if (nid == LNET_NID_ANY) {
                        fprintf(stderr, "%s: Cannot resolve hostname '%s'.\n",
                                progname, s1);
-                        free(converted);
-                        return NULL;
-                }
-                if (strncmp(libcfs_nid2str(nid), "127.0.0.1",
-                            strlen("127.0.0.1")) == 0) {
-                        fprintf(stderr, "%s: The NID '%s' resolves to the "
-                                "loopback address '%s'.  Lustre requires a "
-                                "non-loopback address.\n",
-                                progname, s1, libcfs_nid2str(nid));
-                        free(converted);
-                        return NULL;
-                }
-
-                c += snprintf(c, left, "%s%c", libcfs_nid2str(nid), sep);
-                left = converted + MAXNIDSTR - c;
-                s1 = s2 + 1;
-        }
-        return converted;
+                       free(converted);
+                       return NULL;
+               }
+               if (strncmp(libcfs_nid2str(nid), "127.0.0.1",
+                           strlen("127.0.0.1")) == 0) {
+                       fprintf(stderr,
+                               "%s: The NID '%s' resolves to the loopback address '%s'.  Lustre requires a non-loopback address.\n",
+                               progname, s1, libcfs_nid2str(nid));
+                       free(converted);
+                       return NULL;
+               }
+
+               c += snprintf(c, left, "%s%c", libcfs_nid2str(nid), sep);
+               left = converted + MAXNIDSTR - c;
+               s1 = s2 + 1;
+       }
+       return converted;
 }
 
 int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
               char **mountopts, char *old_fsname)
 {
        static struct option long_opts[] = {
-       { .val = 'B' ,  .name =  "backfs-mount-opts",
+       { .val = 'B'  .name =  "backfs-mount-opts",
                                                .has_arg = required_argument},
-       { .val = 'f' ,  .name =  "failnode",    .has_arg = required_argument},
-       { .val = 'f' ,  .name =  "failover",    .has_arg = required_argument},
-       { .val = 'G' ,  .name =  "mgs",         .has_arg = no_argument},
-       { .val = 'h' ,  .name =  "help",        .has_arg = no_argument},
-       { .val = 'i' ,  .name =  "index",       .has_arg = required_argument},
-       { .val = 'L' ,  .name =  "fsname",      .has_arg = required_argument},
-       { .val = 'm' ,  .name =  "mgsnode",     .has_arg = required_argument},
-       { .val = 'm' ,  .name =  "mgsnid",      .has_arg = required_argument},
-       { .val = 'n' ,  .name =  "dryrun",      .has_arg = no_argument},
-       { .val = 'N' ,  .name =  "nomgs",       .has_arg = no_argument},
-       { .val = 'o' ,  .name =  "mountfsoptions",
+       { .val = 'f'  .name =  "failnode",    .has_arg = required_argument},
+       { .val = 'f'  .name =  "failover",    .has_arg = required_argument},
+       { .val = 'G'  .name =  "mgs",         .has_arg = no_argument},
+       { .val = 'h'  .name =  "help",        .has_arg = no_argument},
+       { .val = 'i'  .name =  "index",       .has_arg = required_argument},
+       { .val = 'L'  .name =  "fsname",      .has_arg = required_argument},
+       { .val = 'm'  .name =  "mgsnode",     .has_arg = required_argument},
+       { .val = 'm'  .name =  "mgsnid",      .has_arg = required_argument},
+       { .val = 'n'  .name =  "dryrun",      .has_arg = no_argument},
+       { .val = 'N'  .name =  "nomgs",       .has_arg = no_argument},
+       { .val = 'o'  .name =  "mountfsoptions",
                                                .has_arg = required_argument},
-       { .val = 'p' ,  .name =  "param",       .has_arg = required_argument},
-       { .val = 'q' ,  .name =  "quiet",       .has_arg = no_argument},
-       { .val = 's' ,  .name =  "servicenode", .has_arg = required_argument},
-       { .val = 't' ,  .name =  "network",     .has_arg = required_argument},
-       { .val = 'u' ,  .name =  "comment",     .has_arg = required_argument},
-       { .val = 'U' ,  .name =  "force-nohostid",
+       { .val = 'p'  .name =  "param",       .has_arg = required_argument},
+       { .val = 'q'  .name =  "quiet",       .has_arg = no_argument},
+       { .val = 's'  .name =  "servicenode", .has_arg = required_argument},
+       { .val = 't'  .name =  "network",     .has_arg = required_argument},
+       { .val = 'u'  .name =  "comment",     .has_arg = required_argument},
+       { .val = 'U'  .name =  "force-nohostid",
                                                .has_arg = no_argument},
-       { .val = 'v' ,  .name =  "verbose",     .has_arg = no_argument},
-       { .val = 'V' ,  .name =  "version",     .has_arg = no_argument},
+       { .val = 'v'  .name =  "verbose",     .has_arg = no_argument},
+       { .val = 'V'  .name =  "version",     .has_arg = no_argument},
 #ifndef TUNEFS
-       { .val = 'b' ,  .name =  "backfstype",  .has_arg = required_argument},
-       { .val = 'c' ,  .name =  "stripe-count-hint",
+       { .val = 'b'  .name =  "backfstype",  .has_arg = required_argument},
+       { .val = 'c'  .name =  "stripe-count-hint",
                                                .has_arg = required_argument},
-       { .val = 'd' ,  .name =  "device-size", .has_arg = required_argument},
-       { .val = 'k' ,  .name =  "mkfsoptions", .has_arg = required_argument},
-       { .val = 'M' ,  .name =  "mdt",         .has_arg = no_argument},
-       { .val = 'O' ,  .name =  "ost",         .has_arg = no_argument},
-       { .val = 'r' ,  .name =  "reformat",    .has_arg = no_argument},
-       { .val = 'R' ,  .name =  "replace",     .has_arg = no_argument},
+       { .val = 'd'  .name =  "device-size", .has_arg = required_argument},
+       { .val = 'k'  .name =  "mkfsoptions", .has_arg = required_argument},
+       { .val = 'M'  .name =  "mdt",         .has_arg = no_argument},
+       { .val = 'O'  .name =  "ost",         .has_arg = no_argument},
+       { .val = 'r'  .name =  "reformat",    .has_arg = no_argument},
+       { .val = 'R'  .name =  "replace",     .has_arg = no_argument},
 #else
-       { .val = 'E' ,  .name =  "erase-param", .has_arg = required_argument},
-       { .val = 'e' ,  .name =  "erase-params",
+       { .val = 'E'  .name =  "erase-param", .has_arg = required_argument},
+       { .val = 'e'  .name =  "erase-params",
                                                .has_arg = no_argument},
-       { .val = 'Q' ,  .name =  "quota",       .has_arg = no_argument},
-       { .val = 'R' ,  .name =  "rename",      .has_arg = optional_argument},
-       { .val = 'w' ,  .name =  "writeconf",   .has_arg = no_argument},
+       { .val = 'Q'  .name =  "quota",       .has_arg = no_argument},
+       { .val = 'R'  .name =  "rename",      .has_arg = optional_argument},
+       { .val = 'w'  .name =  "writeconf",   .has_arg = no_argument},
 #endif
        { .name = NULL } };
        char *short_opts = "B:f:Ghi:L:m:nNo:p:qs:t:u:vV"
@@ -424,9 +419,11 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
        bool index_option = false;
 
 #ifdef TUNEFS
-       /* For the right semantics, if '-e'/'--erase-params' is specified,
+       /*
+        * For the right semantics, if '-e'/'--erase-params' is specified,
         * it must be picked out and all old parameters should be erased
-        * before any other changes are done. */
+        * before any other changes are done.
+        */
        while ((opt = getopt_long(argc, argv, short_opts, long_opts,
                                  &longidx)) != EOF) {
                switch (opt) {
@@ -463,7 +460,7 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        }
 
                        nids = convert_hostnames(optarg);
-                       if (nids == NULL)
+                       if (!nids)
                                return 1;
 
                        rc = append_param(ldd->ldd_params, PARAM_FAILNODE,
@@ -493,6 +490,7 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                case 'i': {
                        char *endptr = NULL;
                        int base;
+
                        index_option = true;
                        /* LU-2374: check whether it is OST/MDT later */
                        base = (strlen(optarg) > 1 &&
@@ -501,15 +499,14 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        mop->mo_ldd.ldd_svindex = strtoul(optarg,
                                                          &endptr, base);
                        if (*endptr != '\0') {
-                               fprintf(stderr, "%s: wrong index %s. "
-                                       "Target index must be decimal or "
-                                       "hexadecimal.\n",
+                               fprintf(stderr,
+                                       "%s: wrong index %s. Target index must be decimal or hexadecimal.\n",
                                        progname, optarg);
                                return 1;
                        }
                        if (ldd->ldd_svindex >= INDEX_UNASSIGNED) {
-                               fprintf(stderr, "%s: wrong index %u. "
-                                       "Target index must be less than %u.\n",
+                               fprintf(stderr,
+                                       "%s: wrong index %u. Target index must be less than %u.\n",
                                        progname, ldd->ldd_svindex,
                                        INDEX_UNASSIGNED);
                                return 1;
@@ -518,13 +515,37 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        ldd->ldd_flags &= ~LDD_F_NEED_INDEX;
                        break;
                }
-               case 'L':
+               case 'L': {
+                       const char *tmp;
+                       size_t len;
+
+                       len = strlen(optarg);
+                       if (len < 1 || len > LUSTRE_MAXFSNAME) {
+                               fprintf(stderr,
+                                       "%s: filesystem name must be 1-%d chars\n",
+                                       progname, LUSTRE_MAXFSNAME);
+                               return 1;
+                       }
+
+                       for (tmp = optarg; *tmp != '\0'; ++tmp) {
+                               if (isalnum(*tmp) || *tmp == '_' || *tmp == '-')
+                                       continue;
+                               else
+                                       break;
+                       }
+                       if (*tmp != '\0') {
+                               fprintf(stderr,
+                                       "%s: char '%c' not allowed in filesystem name\n",
+                                       progname, *tmp);
+                               return 1;
+                       }
                        strscpy(new_fsname, optarg, sizeof(new_fsname));
                        break;
+               }
                case 'm': {
                        char *nids = convert_hostnames(optarg);
 
-                       if (nids == NULL)
+                       if (!nids)
                                return 1;
 
                        rc = append_param(ldd->ldd_params, PARAM_MGSNODE,
@@ -547,7 +568,8 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        break;
                case 'p':
 #ifdef TUNEFS
-                       /* Removes all existing instances of the parameter
+                       /*
+                        * Removes all existing instances of the parameter
                         * before adding new values.
                         */
                        rc = erase_param(ldd->ldd_params, optarg, true);
@@ -569,7 +591,7 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                                return 1;
                        }
 
-                       if (optarg == NULL)
+                       if (!optarg)
                                return 1;
 
                        rc = add_param(ldd->ldd_params, PARAM_NETWORK, optarg);
@@ -606,8 +628,9 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        } while (++i < LDD_MT_LAST);
 
                        if (i == LDD_MT_LAST) {
-                               fprintf(stderr, "%s: invalid backend filesystem"
-                                       " type %s\n", progname, optarg);
+                               fprintf(stderr,
+                                       "%s: invalid backend filesystem type %s\n",
+                                       progname, optarg);
                                return 1;
                        }
                        break;
@@ -617,8 +640,9 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                                int stripe_count = atol(optarg);
 
                                if (stripe_count <= 0) {
-                                       fprintf(stderr, "%s: bad stripe count "
-                                               "%d\n", progname, stripe_count);
+                                       fprintf(stderr,
+                                               "%s: bad stripe count %s\n",
+                                               progname, optarg);
                                        return 1;
                                }
                                mop->mo_stripe_count = stripe_count;
@@ -649,8 +673,10 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
 #else /* TUNEFS */
                case 'E':
                        rc = erase_param(ldd->ldd_params, optarg, false);
-                       /* (rc == 1) means not found, so don't need to
-                        * call osd_erase_ldd(). */
+                       /*
+                        * (rc == 1) means not found, so don't need to
+                        * call osd_erase_ldd().
+                        */
                        if (rc > 1)
                                return rc;
                        if (!rc) {
@@ -673,24 +699,26 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                        mop->mo_flags |= MO_RENAME;
                        if (!optarg) {
                                if (IS_SEPARATED_MGS(ldd)) {
-                                       fprintf(stderr, "%s: must specify the "
-                                               "old fsname to be renamed for "
-                                               "separated MGS\n", progname);
+                                       fprintf(stderr,
+                                               "%s: must specify the old fsname to be renamed for separated MGS\n",
+                                               progname);
                                        return 1;
                                }
                                break;
                        }
 
                        if ((strlen(optarg) < 1) || (strlen(optarg) > 8)) {
-                               fprintf(stderr, "%s: filesystem name must be "
-                                       "1-8 chars\n", progname);
+                               fprintf(stderr,
+                                       "%s: filesystem name must be 1-8 chars\n",
+                                       progname);
                                return 1;
                        }
 
                        tmp = strpbrk(optarg, "/:");
                        if (tmp) {
-                               fprintf(stderr, "%s: char '%c' not allowed in "
-                                       "filesystem name\n", progname, *tmp);
+                               fprintf(stderr,
+                                       "%s: char '%c' not allowed in filesystem name\n",
+                                       progname, *tmp);
                                return 1;
                        }
 
@@ -699,8 +727,8 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
                                        sizeof(ldd->ldd_fsname));
                        } else if (strlen(old_fsname) != strlen(optarg) ||
                                   strcmp(old_fsname, optarg) != 0) {
-                               fprintf(stderr, "%s: the given fsname '%s' "
-                                       "to be renamed does not exist\n",
+                               fprintf(stderr,
+                                       "%s: the given fsname '%s' to be renamed does not exist\n",
                                        progname, optarg);
                                return 1;
                        }
@@ -721,10 +749,10 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
 
        if (strlen(new_fsname) > 0) {
                if (!(mop->mo_flags & (MO_FORCEFORMAT | MO_RENAME)) &&
-                    (!(ldd->ldd_flags &
-                       (LDD_F_UPGRADE14 | LDD_F_VIRGIN | LDD_F_WRITECONF)))) {
-                       fprintf(stderr, "%s: cannot change the name "
-                               "of a registered target\n", progname);
+                   (!(ldd->ldd_flags & (LDD_F_VIRGIN | LDD_F_WRITECONF)))) {
+                       fprintf(stderr,
+                               "%s: cannot change the name of a registered target\n",
+                               progname);
                        return 1;
                }
 
@@ -732,24 +760,26 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
        }
 
        if (index_option && !(mop->mo_ldd.ldd_flags &
-             (LDD_F_UPGRADE14 | LDD_F_VIRGIN |
-              LDD_F_WRITECONF))) {
-               fprintf(stderr, "%s: cannot change the index of"
-                       " a registered target\n", progname);
+                             (LDD_F_VIRGIN | LDD_F_WRITECONF))) {
+               fprintf(stderr,
+                       "%s: cannot change the index of a registered target\n",
+                       progname);
                return 1;
        }
 
 #ifdef TUNEFS
        if (mop->mo_flags & MO_RENAME) {
                if (new_fsname[0] == '\0') {
-                       fprintf(stderr, "%s: need to specify new fsname for "
-                               "renaming case\n", progname);
+                       fprintf(stderr,
+                               "%s: need to specify new fsname for renaming case\n",
+                               progname);
                        return 1;
                }
 
                if (strcmp(old_fsname, new_fsname) == 0) {
-                       fprintf(stderr, "%s: cannot rename fsname '%s' to "
-                               "the same name\n", progname, old_fsname);
+                       fprintf(stderr,
+                               "%s: cannot rename fsname '%s' to the same name\n",
+                               progname, old_fsname);
                        return 1;
                }
        }
@@ -762,18 +792,18 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop,
        if (optind == argc) {
                /* The user didn't specify device name */
                fatal();
-               fprintf(stderr, "Not enough arguments - device name or "
-                       "pool/dataset name not specified.\n");
+               fprintf(stderr,
+                       "Not enough arguments - device name or pool/dataset name not specified.\n");
                return EINVAL;
-       } else {
-               /*  The device or pool/filesystem name */
-               strscpy(mop->mo_device, argv[optind], sizeof(mop->mo_device));
-
-               /* Followed by optional vdevs */
-               if (optind < argc - 1)
-                       mop->mo_pool_vdevs = (char **) &argv[optind + 1];
        }
 
+       /*  The device or pool/filesystem name */
+       strscpy(mop->mo_device, argv[optind], sizeof(mop->mo_device));
+
+       /* Followed by optional vdevs */
+       if (optind < argc - 1)
+               mop->mo_pool_vdevs = (char **)&argv[optind + 1];
+
        return 0;
 }
 
@@ -784,12 +814,12 @@ int main(int argc, char *const argv[])
        char *mountopts = NULL;
        char wanted_mountopts[512] = "";
        char old_fsname[16] = "";
-       unsigned mount_type;
+       unsigned int mount_type;
        int ret = 0;
        int ret2 = 0;
 
        progname = strrchr(argv[0], '/');
-       if (progname != NULL)
+       if (progname)
                progname++;
        else
                progname = argv[0];
@@ -810,15 +840,18 @@ int main(int argc, char *const argv[])
                return ret;
 
 #ifdef TUNEFS
-       /* For tunefs, we must read in the old values before parsing any
-          new ones. */
+       /*
+        * For tunefs, we must read in the old values before parsing any
+        * new ones.
+        */
 
        /* Check whether the disk has already been formatted by mkfs.lustre */
        ret = osd_is_lustre(mop.mo_device, &mount_type);
        if (ret == 0) {
                fatal();
-               fprintf(stderr, "Device %s has not been formatted with "
-                       "mkfs.lustre\n", mop.mo_device);
+               fprintf(stderr,
+                       "Device %s has not been formatted with mkfs.lustre\n",
+                       mop.mo_device);
                ret = ENODEV;
                goto out;
        }
@@ -827,8 +860,9 @@ int main(int argc, char *const argv[])
        ret = osd_read_ldd(mop.mo_device, ldd);
        if (ret != 0) {
                fatal();
-               fprintf(stderr, "Failed to read previous Lustre data from %s "
-                       "(%d)\n", mop.mo_device, ret);
+               fprintf(stderr,
+                       "Failed to read previous Lustre data from %s (%d)\n",
+                       mop.mo_device, ret);
                goto out;
        }
 
@@ -882,18 +916,9 @@ int main(int argc, char *const argv[])
                ldd->ldd_flags &= ~LDD_F_NEED_INDEX;
        }
 
-       if ((ldd->ldd_flags & (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) ==
-           (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) {
-               fatal();
-               fprintf(stderr, "Can't find the target index, "
-               "specify with --index\n");
-               ret = EINVAL;
-               goto out;
-       }
-
        if (ldd->ldd_flags & LDD_F_NEED_INDEX)
-               fprintf(stderr, "warning: %s: for Lustre 2.4 and later, the "
-                       "target index must be specified with --index\n",
+               fprintf(stderr,
+                       "warning: %s: for Lustre 2.4 and later, the target index must be specified with --index\n",
                        mop.mo_device);
 
        /* If no index is supplied for MDT by default set index to zero */
@@ -904,8 +929,10 @@ int main(int argc, char *const argv[])
 #ifndef TUNEFS
        if (!IS_MGS(ldd) && (mop.mo_mgs_failnodes == 0)) {
 #else
-       /* Don't check --mgs or --mgsnode if print_only is set or
-        * --erase-params is set. */
+       /*
+        * Don't check --mgs or --mgsnode if print_only is set or
+        * --erase-params is set.
+        */
        if (!IS_MGS(ldd) && (mop.mo_mgs_failnodes == 0) && !print_only &&
            !(mop.mo_flags & MO_ERASE_ALL)) {
 #endif
@@ -978,7 +1005,7 @@ int main(int argc, char *const argv[])
        }
 
        if (check_mtab_entry(mop.mo_device, mop.mo_device, NULL, NULL))
-               return(EEXIST);
+               return EEXIST;
 
        /* Create the loopback file */
        if (mop.mo_flags & MO_IS_LOOP) {
@@ -999,7 +1026,7 @@ int main(int argc, char *const argv[])
                if (ret != 0) {
                        fatal();
                        fprintf(stderr, "Loop device setup for %s failed: %s\n",
-                                       mop.mo_device, strerror(ret));
+                               mop.mo_device, strerror(ret));
                        goto out;
                }
        }
@@ -1010,9 +1037,8 @@ int main(int argc, char *const argv[])
                ret = osd_is_lustre(mop.mo_device, &mount_type);
                if (ret != 0) {
                        fatal();
-                       fprintf(stderr, "Device %s was previously formatted "
-                               "for lustre. Use --reformat to reformat it, "
-                               "or tunefs.lustre to modify.\n",
+                       fprintf(stderr,
+                               "Device %s was previously formatted for lustre. Use --reformat to reformat it, or tunefs.lustre to modify.\n",
                                mop.mo_device);
                        goto out;
                }
@@ -1029,9 +1055,10 @@ int main(int argc, char *const argv[])
        /* update svname with '=' to refresh config */
        if (ldd->ldd_flags & LDD_F_WRITECONF) {
                struct mount_opts opts;
+
                opts.mo_ldd = *ldd;
                opts.mo_source = mop.mo_device;
-               (void) osd_label_lustre(&opts);
+               (void)osd_label_lustre(&opts);
        }
 
        /* Rename filesystem fsname */