mop->mo_ldd.ldd_svindex = INDEX_UNASSIGNED;
mop->mo_stripe_count = 1;
+ mop->mo_pool_vdevs = NULL;
}
static inline void badopt(const char *opt, char *type)
}
}//while
- /* Last arg is device */
- if (optind != argc - 1) {
- fatal();
- fprintf(stderr, "Bad argument: %s\n", argv[optind]);
- return EINVAL;
- }
-
- /* single argument: <device> */
- if (argc == 2)
- ++print_only;
+ 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");
+ 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];
+ }
return 0;
}
struct mkfs_opts {
struct lustre_disk_data mo_ldd; /* to be written in MOUNT_DATA_FILE */
char mo_device[128]; /* disk device name */
+ char **mo_pool_vdevs; /* list of pool vdevs */
char mo_loopdev[128]; /* in case a loop dev is needed */
char mo_mkfsopts[512]; /* options to the backing-store mkfs */
__u64 mo_device_sz; /* in KB */