From: Darrick J. Wong Date: Wed, 28 Jul 2021 23:01:23 +0000 (-0400) Subject: xfs_io: clean up the funshare command a bit X-Git-Tag: v5.13.0-rc1~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d87ec7f2de48e17a0ee5e88c65484bc4a57ac655;p=thirdparty%2Fxfsprogs-dev.git xfs_io: clean up the funshare command a bit Add proper argument parsing to the funshare command so that when you pass it nonexistent --help it will print the help instead of complaining that it can't convert that to a number. Signed-off-by: Darrick J. Wong Reviewed-by: Carlos Maiolino Signed-off-by: Eric Sandeen --- diff --git a/io/prealloc.c b/io/prealloc.c index 2ae8afe96..a8831c1b2 100644 --- a/io/prealloc.c +++ b/io/prealloc.c @@ -346,16 +346,24 @@ funshare_f( char **argv) { xfs_flock64_t segment; + int c; int mode = FALLOC_FL_UNSHARE_RANGE; - int index = 1; - if (!offset_length(argv[index], argv[index + 1], &segment)) { + while ((c = getopt(argc, argv, "")) != EOF) { + switch (c) { + default: + command_usage(&funshare_cmd); + } + } + if (optind != argc - 2) + return command_usage(&funshare_cmd); + + if (!offset_length(argv[optind], argv[optind + 1], &segment)) { exitcode = 1; return 0; } - if (fallocate(file->fd, mode, - segment.l_start, segment.l_len)) { + if (fallocate(file->fd, mode, segment.l_start, segment.l_len)) { perror("fallocate"); exitcode = 1; return 0;