From 66c943be6caf033c2992c7e4cf99a35e0b1460c1 Mon Sep 17 00:00:00 2001 From: Integral <integral@archlinuxcn.org> Date: Mon, 31 Mar 2025 20:00:32 +0800 Subject: [PATCH] bcachefs-tools: add fs_usage & return -EINVAL when no matching subcommand Add the missing usage function for "fs" subcommand; when no matching subcommand exists, print the usage and return -EINVAL. Signed-off-by: Integral <integral@archlinuxcn.org> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> --- c_src/bcachefs.c | 15 ++++++++------- c_src/cmd_fs.c | 13 +++++++++++++ c_src/cmds.h | 1 + 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/c_src/bcachefs.c b/c_src/bcachefs.c index f2a1449e..2f718147 100644 --- a/c_src/bcachefs.c +++ b/c_src/bcachefs.c @@ -118,16 +118,15 @@ int fs_cmds(int argc, char *argv[]) { char *cmd = pop_cmd(&argc, argv); - if (argc < 1) { - bcachefs_usage(); - exit(EXIT_FAILURE); - } + if (argc < 1) + return fs_usage(); if (!strcmp(cmd, "usage")) return cmd_fs_usage(argc, argv); if (!strcmp(cmd, "top")) return cmd_fs_top(argc, argv); - return 0; + fs_usage(); + return -EINVAL; } int device_cmds(int argc, char *argv[]) @@ -153,7 +152,8 @@ int device_cmds(int argc, char *argv[]) if (!strcmp(cmd, "resize-journal")) return cmd_device_resize_journal(argc, argv); - return 0; + device_usage(); + return -EINVAL; } int data_cmds(int argc, char *argv[]) @@ -169,5 +169,6 @@ int data_cmds(int argc, char *argv[]) if (!strcmp(cmd, "job")) return cmd_data_job(argc, argv); - return 0; + data_usage(); + return -EINVAL; } diff --git a/c_src/cmd_fs.c b/c_src/cmd_fs.c index 06f797b9..4ab3ec0d 100644 --- a/c_src/cmd_fs.c +++ b/c_src/cmd_fs.c @@ -491,6 +491,19 @@ devs: bcache_fs_close(fs); } +int fs_usage(void) +{ + puts("bcachefs fs - manage a running filesystem\n" + "Usage: bcachefs fs <CMD> [OPTIONS]\n" + "\n" + "Commands:\n" + " usage Display detailed filesystem usage\n" + " top Show runtime performance information\n" + "\n" + "Report bugs to <linux-bcachefs@vger.kernel.org>"); + return 0; +} + static void fs_usage_usage(void) { puts("bcachefs fs usage - display detailed filesystem usage\n" diff --git a/c_src/cmds.h b/c_src/cmds.h index 9502d539..82f28af2 100644 --- a/c_src/cmds.h +++ b/c_src/cmds.h @@ -15,6 +15,7 @@ int cmd_recover_super(int argc, char *argv[]); int cmd_reset_counters(int argc, char *argv[]); int cmd_set_option(int argc, char *argv[]); +int fs_usage(void); int cmd_fs_usage(int argc, char *argv[]); int cmd_fs_top(int argc, char *argv[]);