From d87ec7f2de48e17a0ee5e88c65484bc4a57ac655 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 28 Jul 2021 19:01:23 -0400 Subject: [PATCH] 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 --- io/prealloc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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; -- 2.47.2