From d94337aaeb241e040b37012c12cecb6bb5d462b6 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Wed, 21 Oct 2015 10:24:58 +0800 Subject: [PATCH] LU-5070 utils: mkfs.lustre code cleanup Re-order the options to increase the code readability. Remove unused code, redundant logic, white spaces, blank lines, and so on. Signed-off-by: Fan Yong Change-Id: I88ee52fb2425e9e256b7751bad4b6cfcd88011ec Reviewed-on: http://review.whamcloud.com/15303 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Ben Evans Reviewed-by: Oleg Drokin --- lustre/utils/mkfs_lustre.c | 703 +++++++++++++++++++++++---------------------- lustre/utils/mount_utils.c | 7 - 2 files changed, 361 insertions(+), 349 deletions(-) diff --git a/lustre/utils/mkfs_lustre.c b/lustre/utils/mkfs_lustre.c index 18ac16c..ca7d5f9 100644 --- a/lustre/utils/mkfs_lustre.c +++ b/lustre/utils/mkfs_lustre.c @@ -123,10 +123,12 @@ void usage(FILE *out) "cache, log)\n" #endif "\n" +#ifndef TUNEFS "\ttarget types:\n" "\t\t--mgs: configuration management service\n" "\t\t--mdt: metadata storage, mutually exclusive with ost\n" "\t\t--ost: object storage, mutually exclusive with mdt, mgs\n" +#endif "\toptions (in order of popularity):\n" "\t\t--index=#N: numerical target index (0..N)\n" "\t\t\trequired for all targets other than the MGS,\n" @@ -148,7 +150,7 @@ void usage(FILE *out) "\t\t\t --param lov.stripesize=2M\n" "\t\t--network=[,<...>]: restrict OST/MDT to network(s)\n" #ifndef TUNEFS - "\t\t--backfstype=: backing fs type (ext3, ldiskfs)\n" + "\t\t--backfstype=: backing fs type (ldiskfs, zfs)\n" "\t\t--device-size=#N(KB): device size for loop devices\n" "\t\t--mkfsoptions=: format options\n" "\t\t--reformat: overwrite an existing disk\n" @@ -274,137 +276,101 @@ static char *convert_hostnames(char *s1) } int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, - char **mountopts) + char **mountopts) { static struct option long_opt[] = { - { "backfstype", required_argument, NULL, 'b' }, { "backfs-mount-opts", required_argument, NULL, 'B' }, - { "stripe-count-hint", required_argument, NULL, 'c' }, - { "comment", required_argument, NULL, 'u' }, - { "configdev", required_argument, NULL, 'C' }, - { "device-size", required_argument, NULL, 'd' }, - { "dryrun", no_argument, NULL, 'n' }, - { "erase-params", no_argument, NULL, 'e' }, { "failnode", required_argument, NULL, 'f' }, { "failover", required_argument, NULL, 'f' }, - { "mgs", no_argument, NULL, 'G' }, { "help", no_argument, NULL, 'h' }, { "index", required_argument, NULL, 'i' }, - { "mkfsoptions", required_argument, NULL, 'k' }, + { "fsname", required_argument, NULL, 'L' }, { "mgsnode", required_argument, NULL, 'm' }, { "mgsnid", required_argument, NULL, 'm' }, - { "mdt", no_argument, NULL, 'M' }, - { "fsname", required_argument, NULL, 'L' }, - { "noformat", no_argument, NULL, 'n' }, - { "nomgs", no_argument, NULL, 'N' }, + { "dryrun", no_argument, NULL, 'n' }, { "mountfsoptions", required_argument, NULL, 'o' }, - { "ost", no_argument, NULL, 'O' }, { "param", required_argument, NULL, 'p' }, - { "print", no_argument, NULL, 'n' }, { "quiet", no_argument, NULL, 'q' }, - { "quota", no_argument, NULL, 'Q' }, - { "reformat", no_argument, NULL, 'r' }, - { "replace", no_argument, NULL, 'R' }, { "servicenode", required_argument, NULL, 's' }, { "network", required_argument, NULL, 't' }, + { "comment", required_argument, NULL, 'u' }, { "verbose", no_argument, NULL, 'v' }, { "version", no_argument, NULL, 'V' }, +#ifndef TUNEFS + { "backfstype", required_argument, NULL, 'b' }, + { "stripe-count-hint", required_argument, NULL, 'c' }, + { "device-size", required_argument, NULL, 'd' }, + { "mgs", no_argument, NULL, 'G' }, + { "mkfsoptions", required_argument, NULL, 'k' }, + { "mdt", no_argument, NULL, 'M' }, + { "nomgs", no_argument, NULL, 'N' }, + { "ost", no_argument, NULL, 'O' }, + { "reformat", no_argument, NULL, 'r' }, + { "replace", no_argument, NULL, 'R' }, +#else + { "erase-params", no_argument, NULL, 'e' }, + { "quota", no_argument, NULL, 'Q' }, { "writeconf", no_argument, NULL, 'w' }, +#endif { 0, 0, NULL, 0 } }; - char *optstring = "b:c:C:d:ef:Ghi:k:L:m:MnNo:Op:PqrRs:t:Uu:vVw"; + char *optstring = "B:f:hi:L:m:no:p:qs:t:u:vV" +#ifndef TUNEFS + "b:c:d:Gk:MNOrR"; +#else + "eQw"; +#endif + struct lustre_disk_data *ldd = &mop->mo_ldd; + char new_fsname[16] = { 0 }; int opt; int rc, longidx; int failnode_set = 0, servicenode_set = 0; int replace = 0; bool index_option = false; - bool fsname_option = false; - - while ((opt = getopt_long(argc, argv, optstring, long_opt, &longidx)) != - EOF) { - switch (opt) { - case 'b': { - int i = 0; - while (i < LDD_MT_LAST) { - if (strcmp(optarg, mt_str(i)) == 0) { - mop->mo_ldd.ldd_mount_type = i; - break; - } - i++; - } - if (i == LDD_MT_LAST) { - fprintf(stderr, "%s: invalid backend filesystem" - " type %s\n", progname, optarg); - return 1; - } - break; - } + + while ((opt = getopt_long(argc, argv, optstring, long_opt, &longidx)) != + EOF) { + switch (opt) { case 'B': mop->mo_mountopts = optarg; break; - case 'c': - if (IS_MDT(&mop->mo_ldd)) { - int stripe_count = atol(optarg); - if (stripe_count <= 0) { - fprintf(stderr, "%s: bad stripe count " - "%d\n", progname, stripe_count); - return 1; - } - mop->mo_stripe_count = stripe_count; - } else { - badopt(long_opt[longidx].name, "MDT"); - return 1; - } - break; - case 'C': /* Configdev */ - //FIXME - printf("Configdev not implemented\n"); - return 1; - case 'd': - mop->mo_device_kb = atol(optarg); - break; - case 'e': - mop->mo_ldd.ldd_params[0] = '\0'; - /* Must update the mgs logs */ - mop->mo_ldd.ldd_flags |= LDD_F_UPDATE; - break; - case 'f': - case 's': { - char *nids; - - if ((opt == 'f' && servicenode_set) - || (opt == 's' && failnode_set)) { - fprintf(stderr, "%s: %s cannot use with --%s\n", - progname, long_opt[longidx].name, - opt == 'f' ? "servicenode" : "failnode"); - return 1; - } - - nids = convert_hostnames(optarg); - if (!nids) - return 1; - rc = append_param(mop->mo_ldd.ldd_params, - PARAM_FAILNODE, nids, ':'); - free(nids); - if (rc) - return rc; - /* Must update the mgs logs */ - mop->mo_ldd.ldd_flags |= LDD_F_UPDATE; - if (opt == 'f') { - failnode_set = 1; - } else { - mop->mo_ldd.ldd_flags |= LDD_F_NO_PRIMNODE; - servicenode_set = 1; - } + case 'f': + case 's': { + char *nids; + + if ((opt == 'f' && servicenode_set) || + (opt == 's' && failnode_set)) { + fprintf(stderr, "%s: %s cannot use with --%s\n", + progname, long_opt[longidx].name, + opt == 'f' ? "servicenode" : + "failnode"); + return 1; + } + + nids = convert_hostnames(optarg); + if (nids == NULL) + return 1; + + rc = append_param(ldd->ldd_params, PARAM_FAILNODE, + nids, ':'); + free(nids); + if (rc != 0) + return rc; + + /* Must update the mgs logs */ + ldd->ldd_flags |= LDD_F_UPDATE; + if (opt == 'f') { + failnode_set = 1; + } else { + ldd->ldd_flags |= LDD_F_NO_PRIMNODE; + servicenode_set = 1; + } mop->mo_flags |= MO_FAILOVER; - break; - } - case 'G': - mop->mo_ldd.ldd_flags |= LDD_F_SV_TYPE_MGS; - break; - case 'h': - usage(stdout); - return 1; + break; + } + case 'h': + usage(stdout); + return 1; case 'i': { char *endptr = NULL; int base; @@ -422,21 +388,18 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, progname, optarg); return 1; } - if (mop->mo_ldd.ldd_svindex >= INDEX_UNASSIGNED) { + if (ldd->ldd_svindex >= INDEX_UNASSIGNED) { fprintf(stderr, "%s: wrong index %u. " "Target index must be less than %u.\n", - progname, mop->mo_ldd.ldd_svindex, + progname, ldd->ldd_svindex, INDEX_UNASSIGNED); return 1; } - mop->mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; + + ldd->ldd_flags &= ~LDD_F_NEED_INDEX; break; } - case 'k': - strscpy(mop->mo_mkfsopts, optarg, - sizeof(mop->mo_mkfsopts)); - break; - case 'L': { + case 'L': { rc = lustre_is_fsname_valid(optarg, 1, LUSTRE_MAXFSNAME); if (rc < 0) { @@ -450,74 +413,61 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, return 1; } - strscpy(mop->mo_ldd.ldd_fsname, optarg, - sizeof(mop->mo_ldd.ldd_fsname)); - fsname_option = true; - break; - } - case 'm': { - char *nids = convert_hostnames(optarg); - if (!nids) - return 1; - rc = append_param(mop->mo_ldd.ldd_params, - PARAM_MGSNODE, nids, ':'); - free(nids); - if (rc) - return rc; - mop->mo_mgs_failnodes++; - break; - } - case 'M': - mop->mo_ldd.ldd_flags |= LDD_F_SV_TYPE_MDT; - break; - case 'n': - print_only++; - break; - case 'N': - mop->mo_ldd.ldd_flags &= ~LDD_F_SV_TYPE_MGS; - break; - case 'o': - *mountopts = optarg; - break; - case 'O': - mop->mo_ldd.ldd_flags |= LDD_F_SV_TYPE_OST; - break; - case 'p': - rc = add_param(mop->mo_ldd.ldd_params, NULL, optarg); - if (rc) - return rc; - /* Must update the mgs logs */ - mop->mo_ldd.ldd_flags |= LDD_F_UPDATE; - break; - case 'q': - verbose--; - break; - case 'r': - mop->mo_flags |= MO_FORCEFORMAT; - break; - case 'R': - replace = 1; + strscpy(new_fsname, optarg, sizeof(new_fsname)); + break; + } + case 'm': { + char *nids = convert_hostnames(optarg); + + if (nids == NULL) + return 1; + + rc = append_param(ldd->ldd_params, PARAM_MGSNODE, + nids, ':'); + free(nids); + if (rc != 0) + return rc; + + mop->mo_mgs_failnodes++; + break; + } + case 'n': + print_only++; + break; + case 'o': + *mountopts = optarg; + break; + case 'p': + rc = add_param(ldd->ldd_params, NULL, optarg); + if (rc != 0) + return rc; + + /* Must update the mgs logs */ + ldd->ldd_flags |= LDD_F_UPDATE; + break; + case 'q': + verbose--; + break; + case 't': + if (!IS_MDT(ldd) && !IS_OST(ldd)) { + badopt(long_opt[longidx].name, "MDT,OST"); + return 1; + } + + if (optarg == NULL) + return 1; + + rc = add_param(ldd->ldd_params, PARAM_NETWORK, optarg); + if (rc != 0) + return rc; + + /* Must update the mgs logs */ + ldd->ldd_flags |= LDD_F_UPDATE; + break; + case 'u': + strscpy(ldd->ldd_userdata, optarg, + sizeof(ldd->ldd_userdata)); break; - case 't': - if (!IS_MDT(&mop->mo_ldd) && !IS_OST(&mop->mo_ldd)) { - badopt(long_opt[longidx].name, "MDT,OST"); - return 1; - } - - if (!optarg) - return 1; - - rc = add_param(mop->mo_ldd.ldd_params, - PARAM_NETWORK, optarg); - if (rc != 0) - return rc; - /* Must update the mgs logs */ - mop->mo_ldd.ldd_flags |= LDD_F_UPDATE; - break; - case 'u': - strscpy(mop->mo_ldd.ldd_userdata, optarg, - sizeof(mop->mo_ldd.ldd_userdata)); - break; case 'v': verbose++; break; @@ -526,30 +476,98 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, fprintf(stdout, "%s %s\n", progname, LUSTRE_VERSION_STRING); return 0; - case 'w': - mop->mo_ldd.ldd_flags |= LDD_F_WRITECONF; +#ifndef TUNEFS + case 'b': { + int i = 0; + + do { + if (strcmp(optarg, mt_str(i)) == 0) { + ldd->ldd_mount_type = i; + break; + } + } while (++i < LDD_MT_LAST); + + if (i == LDD_MT_LAST) { + fprintf(stderr, "%s: invalid backend filesystem" + " type %s\n", progname, optarg); + return 1; + } + break; + } + case 'c': + if (IS_MDT(ldd)) { + int stripe_count = atol(optarg); + + if (stripe_count <= 0) { + fprintf(stderr, "%s: bad stripe count " + "%d\n", progname, stripe_count); + return 1; + } + mop->mo_stripe_count = stripe_count; + } else { + badopt(long_opt[longidx].name, "MDT"); + return 1; + } + break; + case 'd': + mop->mo_device_kb = atol(optarg); + break; + case 'G': + ldd->ldd_flags |= LDD_F_SV_TYPE_MGS; + break; + case 'k': + strscpy(mop->mo_mkfsopts, optarg, + sizeof(mop->mo_mkfsopts)); + break; + case 'M': + ldd->ldd_flags |= LDD_F_SV_TYPE_MDT; + break; + case 'N': + ldd->ldd_flags &= ~LDD_F_SV_TYPE_MGS; + break; + case 'O': + ldd->ldd_flags |= LDD_F_SV_TYPE_OST; + break; + case 'r': + mop->mo_flags |= MO_FORCEFORMAT; + break; + case 'R': + replace = 1; + break; +#else /* !TUNEFS */ + case 'e': + ldd->ldd_params[0] = '\0'; + /* Must update the mgs logs */ + ldd->ldd_flags |= LDD_F_UPDATE; break; case 'Q': mop->mo_flags |= MO_QUOTA; break; - default: - if (opt != '?') { - fatal(); - fprintf(stderr, "Unknown option '%c'\n", opt); - } - return EINVAL; - } - }//while - - if (fsname_option && - !(mop->mo_flags & MO_FORCEFORMAT) && - (!(mop->mo_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); - return 1; + case 'w': + ldd->ldd_flags |= LDD_F_WRITECONF; + break; +#endif /* !TUNEFS */ + default: + if (opt != '?') { + fatal(); + fprintf(stderr, "Unknown option '%c'\n", opt); + } + return EINVAL; + } } + + if (strlen(new_fsname) > 0) { + if (!(mop->mo_flags & MO_FORCEFORMAT) && + (!(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); + return 1; + } + + strscpy(ldd->ldd_fsname, new_fsname, sizeof(ldd->ldd_fsname)); + } + if (index_option && !(mop->mo_ldd.ldd_flags & (LDD_F_UPGRADE14 | LDD_F_VIRGIN | LDD_F_WRITECONF))) { @@ -560,7 +578,7 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, /* Need to clear this flag after parsing 'L' and 'i' options. */ if (replace) - mop->mo_ldd.ldd_flags &= ~LDD_F_VIRGIN; + ldd->ldd_flags &= ~LDD_F_VIRGIN; if (optind == argc) { /* The user didn't specify device name */ @@ -577,130 +595,130 @@ int parse_opts(int argc, char *const argv[], struct mkfs_opts *mop, mop->mo_pool_vdevs = (char **) &argv[optind + 1]; } - return 0; + return 0; } int main(int argc, char *const argv[]) { struct mkfs_opts mop; - struct lustre_disk_data *ldd; + struct lustre_disk_data *ldd = &mop.mo_ldd; char *mountopts = NULL; char wanted_mountopts[512] = ""; unsigned mount_type; int ret = 0; int ret2 = 0; - if ((progname = strrchr(argv[0], '/')) != NULL) - progname++; - else - progname = argv[0]; + progname = strrchr(argv[0], '/'); + if (progname != NULL) + progname++; + else + progname = argv[0]; - if ((argc < 2) || (argv[argc - 1][0] == '-')) { - usage(stderr); - return(EINVAL); - } + if ((argc < 2) || (argv[argc - 1][0] == '-')) { + usage(stderr); + return EINVAL; + } - memset(&mop, 0, sizeof(mop)); - set_defaults(&mop); + memset(&mop, 0, sizeof(mop)); + set_defaults(&mop); - /* device is last arg */ - strscpy(mop.mo_device, argv[argc - 1], sizeof(mop.mo_device)); + /* device is last arg */ + strscpy(mop.mo_device, argv[argc - 1], sizeof(mop.mo_device)); ret = osd_init(); - if (ret) + if (ret != 0) 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 */ + /* 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); - ret = ENODEV; - goto out; - } - mop.mo_ldd.ldd_mount_type = mount_type; - - ret = osd_read_ldd(mop.mo_device, &mop.mo_ldd); - if (ret) { - fatal(); - fprintf(stderr, "Failed to read previous Lustre data from %s " - "(%d)\n", mop.mo_device, ret); - goto out; - } - mop.mo_ldd.ldd_flags &= ~(LDD_F_WRITECONF | LDD_F_VIRGIN); + if (ret == 0) { + fatal(); + fprintf(stderr, "Device %s has not been formatted with " + "mkfs.lustre\n", mop.mo_device); + ret = ENODEV; + goto out; + } + ldd->ldd_mount_type = mount_type; + + 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); + goto out; + } + + ldd->ldd_flags &= ~(LDD_F_WRITECONF | LDD_F_VIRGIN); /* svname of the form lustre:OST1234 means never registered */ - ret = strlen(mop.mo_ldd.ldd_svname); - if (mop.mo_ldd.ldd_svname[ret - 8] == ':') { - mop.mo_ldd.ldd_svname[ret - 8] = '-'; - mop.mo_ldd.ldd_flags |= LDD_F_VIRGIN; - } else if (mop.mo_ldd.ldd_svname[ret - 8] == '=') { - mop.mo_ldd.ldd_svname[ret - 8] = '-'; - mop.mo_ldd.ldd_flags |= LDD_F_WRITECONF; + ret = strlen(ldd->ldd_svname); + if (ldd->ldd_svname[ret - 8] == ':') { + ldd->ldd_svname[ret - 8] = '-'; + ldd->ldd_flags |= LDD_F_VIRGIN; + } else if (ldd->ldd_svname[ret - 8] == '=') { + ldd->ldd_svname[ret - 8] = '-'; + ldd->ldd_flags |= LDD_F_WRITECONF; } - if (strstr(mop.mo_ldd.ldd_params, PARAM_MGSNODE)) + if (strstr(ldd->ldd_params, PARAM_MGSNODE)) mop.mo_mgs_failnodes++; if (verbose > 0) - print_ldd("Read previous values", &(mop.mo_ldd)); -#endif + print_ldd("Read previous values", ldd); +#endif /* TUNEFS */ ret = parse_opts(argc, argv, &mop, &mountopts); - if (ret || version) + if (ret != 0 || version) goto out; - ldd = &mop.mo_ldd; - - if (!(IS_MDT(ldd) || IS_OST(ldd) || IS_MGS(ldd))) { - fatal(); - fprintf(stderr, "must set target type: MDT,OST,MGS\n"); - ret = EINVAL; - goto out; - } + if (!IS_MDT(ldd) && !IS_OST(ldd) && !IS_MGS(ldd)) { + fatal(); + fprintf(stderr, "must set target type: MDT,OST,MGS\n"); + ret = EINVAL; + goto out; + } - if (((IS_MDT(ldd) || IS_MGS(ldd))) && IS_OST(ldd)) { - fatal(); - fprintf(stderr, "OST type is exclusive with MDT,MGS\n"); - ret = EINVAL; - goto out; - } + if (((IS_MDT(ldd) || IS_MGS(ldd))) && IS_OST(ldd)) { + fatal(); + fprintf(stderr, "OST type is exclusive with MDT,MGS\n"); + ret = EINVAL; + goto out; + } /* Stand alone MGS doesn't need an index */ if (!IS_MDT(ldd) && IS_MGS(ldd)) { -#ifndef TUNEFS /* mkfs.lustre */ +#ifndef TUNEFS /* But if --index was specified flag an error */ - if (!(mop.mo_ldd.ldd_flags & LDD_F_NEED_INDEX)) { + if (!(ldd->ldd_flags & LDD_F_NEED_INDEX)) { badopt("index", "MDT,OST"); goto out; } #endif - mop.mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; + ldd->ldd_flags &= ~LDD_F_NEED_INDEX; } - if ((mop.mo_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 | 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 (mop.mo_ldd.ldd_flags & LDD_F_NEED_INDEX) + 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", mop.mo_device); /* If no index is supplied for MDT by default set index to zero */ if (IS_MDT(ldd) && (ldd->ldd_svindex == INDEX_UNASSIGNED)) { - mop.mo_ldd.ldd_flags &= ~LDD_F_NEED_INDEX; - mop.mo_ldd.ldd_svindex = 0; + ldd->ldd_flags &= ~LDD_F_NEED_INDEX; + ldd->ldd_svindex = 0; } if (!IS_MGS(ldd) && (mop.mo_mgs_failnodes == 0)) { fatal(); @@ -711,17 +729,17 @@ int main(int argc, char *const argv[]) ret = EINVAL; goto out; } - if ((IS_MDT(ldd) || IS_OST(ldd)) && mop.mo_ldd.ldd_fsname[0] == '\0') { + if ((IS_MDT(ldd) || IS_OST(ldd)) && ldd->ldd_fsname[0] == '\0') { fatal(); fprintf(stderr, "Must specify --fsname for MDT/OST device\n"); ret = EINVAL; goto out; } - /* These are the permanent mount options (always included) */ + /* These are the permanent mount options (always included) */ ret = osd_prepare_lustre(&mop, wanted_mountopts, sizeof(wanted_mountopts)); - if (ret) { + if (ret != 0) { fatal(); fprintf(stderr, "unable to prepare backend (%d)\n", ret); goto out; @@ -750,75 +768,76 @@ int main(int argc, char *const argv[]) ret = osd_fix_mountopts(&mop, ldd->ldd_mount_opts, sizeof(ldd->ldd_mount_opts)); - if (ret) { + if (ret != 0) { fatal(); fprintf(stderr, "unable to fix mountfsoptions (%d)\n", ret); goto out; } - server_make_name(ldd->ldd_flags, ldd->ldd_svindex, - ldd->ldd_fsname, ldd->ldd_svname); + server_make_name(ldd->ldd_flags, ldd->ldd_svindex, + ldd->ldd_fsname, ldd->ldd_svname); - if (verbose >= 0) - print_ldd("Permanent disk data", ldd); + if (verbose >= 0) + print_ldd("Permanent disk data", ldd); - if (print_only) { - printf("exiting before disk write.\n"); - goto out; - } + if (print_only) { + printf("exiting before disk write.\n"); + goto out; + } if (check_mtab_entry(mop.mo_device, mop.mo_device, NULL, NULL)) return(EEXIST); - /* Create the loopback file */ - if (mop.mo_flags & MO_IS_LOOP) { - ret = access(mop.mo_device, F_OK); - if (ret) - ret = errno; -#ifndef TUNEFS /* mkfs.lustre */ - /* Reformat the loopback file */ - if (ret || (mop.mo_flags & MO_FORCEFORMAT)) { - ret = loop_format(&mop); - if (ret) - goto out; - } + /* Create the loopback file */ + if (mop.mo_flags & MO_IS_LOOP) { + ret = access(mop.mo_device, F_OK); + if (ret != 0) + ret = errno; + +#ifndef TUNEFS + /* Reformat the loopback file */ + if (ret != 0 || (mop.mo_flags & MO_FORCEFORMAT)) { + ret = loop_format(&mop); + if (ret != 0) + goto out; + } #endif - if (ret == 0) - ret = loop_setup(&mop); - if (ret) { - fatal(); - fprintf(stderr, "Loop device setup for %s failed: %s\n", - mop.mo_device, strerror(ret)); - goto out; - } - } + if (ret == 0) + ret = loop_setup(&mop); + if (ret != 0) { + fatal(); + fprintf(stderr, "Loop device setup for %s failed: %s\n", + mop.mo_device, strerror(ret)); + goto out; + } + } -#ifndef TUNEFS /* mkfs.lustre */ - /* Check whether the disk has already been formatted by mkfs.lustre */ - if (!(mop.mo_flags & MO_FORCEFORMAT)) { +#ifndef TUNEFS + /* Check whether the disk has already been formatted by mkfs.lustre */ + if (!(mop.mo_flags & MO_FORCEFORMAT)) { ret = osd_is_lustre(mop.mo_device, &mount_type); - if (ret) { - fatal(); - 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; - } - } + if (ret != 0) { + fatal(); + 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; + } + } - /* Format the backing filesystem */ + /* Format the backing filesystem */ ret = osd_make_lustre(&mop); - if (ret != 0) { - fatal(); - fprintf(stderr, "mkfs failed %d\n", ret); - goto out; - } -#else + if (ret != 0) { + fatal(); + fprintf(stderr, "mkfs failed %d\n", ret); + goto out; + } +#else /* !TUNEFS */ /* update svname with '=' to refresh config */ - if (mop.mo_ldd.ldd_flags & LDD_F_WRITECONF) { + if (ldd->ldd_flags & LDD_F_WRITECONF) { struct mount_opts opts; - opts.mo_ldd = mop.mo_ldd; + opts.mo_ldd = *ldd; opts.mo_source = mop.mo_device; (void) osd_label_lustre(&opts); } @@ -828,16 +847,15 @@ int main(int argc, char *const argv[]) ret = osd_enable_quota(&mop); goto out; } +#endif /* !TUNEFS */ -#endif - - /* Write our config files */ + /* Write our config files */ ret = osd_write_ldd(&mop); - if (ret != 0) { - fatal(); - fprintf(stderr, "failed to write local files\n"); - goto out; - } + if (ret != 0) { + fatal(); + fprintf(stderr, "failed to write local files\n"); + goto out; + } out: osd_fini(); @@ -845,11 +863,12 @@ out: if (ret == 0) ret = ret2; - /* Fix any crazy return values from system() */ - if (ret && ((ret & 255) == 0)) - return (1); - if (ret) - verrprint("%s: exiting with %d (%s)\n", - progname, ret, strerror(ret)); - return (ret); + /* Fix any crazy return values from system() */ + if (ret != 0 && ((ret & 255) == 0)) + return 1; + + if (ret != 0) + verrprint("%s: exiting with %d (%s)\n", + progname, ret, strerror(ret)); + return ret; } diff --git a/lustre/utils/mount_utils.c b/lustre/utils/mount_utils.c index 7411577..8287d34 100644 --- a/lustre/utils/mount_utils.c +++ b/lustre/utils/mount_utils.c @@ -640,7 +640,6 @@ int osd_write_ldd(struct mkfs_opts *mop) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->write_ldd(mop); - else ret = EINVAL; @@ -654,7 +653,6 @@ int osd_read_ldd(char *dev, struct lustre_disk_data *ldd) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->read_ldd(dev, ldd); - else ret = EINVAL; @@ -688,7 +686,6 @@ int osd_make_lustre(struct mkfs_opts *mop) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->make_lustre(mop); - else ret = EINVAL; @@ -704,7 +701,6 @@ int osd_prepare_lustre(struct mkfs_opts *mop, if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->prepare_lustre(mop, wanted_mountopts, len); - else ret = EINVAL; @@ -732,7 +728,6 @@ int osd_tune_lustre(char *dev, struct mount_opts *mop) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->tune_lustre(dev, mop); - else ret = EINVAL; @@ -746,7 +741,6 @@ int osd_label_lustre(struct mount_opts *mop) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->label_lustre(mop); - else ret = EINVAL; @@ -761,7 +755,6 @@ int osd_enable_quota(struct mkfs_opts *mop) if (backfs_mount_type_okay(ldd->ldd_mount_type)) ret = backfs_ops[ldd->ldd_mount_type]->enable_quota(mop); - else ret = EINVAL; -- 1.8.3.1