diff options
Diffstat (limited to 'c_src/cmd_migrate.c')
-rw-r--r-- | c_src/cmd_migrate.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/c_src/cmd_migrate.c b/c_src/cmd_migrate.c index 91c42302..b4da4e5b 100644 --- a/c_src/cmd_migrate.c +++ b/c_src/cmd_migrate.c @@ -244,7 +244,6 @@ static int migrate_fs(const char *fs_path, find_superblock_space(extents, format_opts, dev); struct bch_sb *sb = bch2_format(fs_opt_strs, fs_opts, format_opts, devs); - darray_exit(&devs); u64 sb_offset = le64_to_cpu(sb->layout.sb_offset[0]); @@ -316,6 +315,8 @@ static int migrate_fs(const char *fs_path, "no longer needed (and should be deleted prior to running\n" "bcachefs migrate-superblock)\n", sb_offset, dev->path, dev->path, sb_offset); + + darray_exit(&devs); return 0; } @@ -370,19 +371,25 @@ static void migrate_superblock_usage(void) "Usage: bcachefs migrate-superblock [OPTION]...\n" "\n" "Options:\n" - " -d device Device to create superblock for\n" - " -o offset Offset of existing superblock\n" - " -h Display this help and exit\n" + " -d, --dev device Device to create superblock for\n" + " -o, --offset offset Offset of existing superblock\n" + " -h, --help Display this help and exit\n" "Report bugs to <linux-bcachefs@vger.kernel.org>"); } int cmd_migrate_superblock(int argc, char *argv[]) { + static const struct option longopts[] = { + { "dev", required_argument, NULL, 'd' }, + { "offset", required_argument, NULL, 'o' }, + { "help", no_argument, NULL, 'h' }, + { NULL } + }; darray_const_str devs = {}; u64 sb_offset = 0; int opt, ret; - while ((opt = getopt(argc, argv, "d:o:h")) != -1) + while ((opt = getopt_long(argc, argv, "d:o:h", longopts, NULL)) != -1) switch (opt) { case 'd': darray_push(&devs, optarg); |