summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2015-06-24 09:09:17 -0700
committerDavid Sterba <dsterba@suse.cz>2015-06-26 16:33:39 +0200
commitf802f572b1cb1d33bab9747e87e6506b284546cf (patch)
treee8763c099809f0eb6129d95be98d8fe9ee033fe1
parent12aba72aed310d6d3215684c44849233df7d79d2 (diff)
btrfs-progs: alias btrfs device delete to btrfs device remove
There's an awkward asymmetry between btrfs device add and btrfs device delete. Resolve this by aliasing delete to remove. Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: David Sterba <dsterba@suse.cz>
-rw-r--r--Documentation/btrfs-device.asciidoc5
-rw-r--r--cmds-device.c35
-rw-r--r--commands.h1
-rw-r--r--help.c10
4 files changed, 37 insertions, 14 deletions
diff --git a/Documentation/btrfs-device.asciidoc b/Documentation/btrfs-device.asciidoc
index c56cf5ef..2827598a 100644
--- a/Documentation/btrfs-device.asciidoc
+++ b/Documentation/btrfs-device.asciidoc
@@ -74,9 +74,12 @@ do not perform discard by default
-f|--force::::
force overwrite of existing filesystem on the given disk(s)
-*delete* <dev> [<dev>...] <path>::
+*remove* <dev> [<dev>...] <path>::
Remove device(s) from a filesystem identified by <path>.
+*delete* <dev> [<dev>...] <path>::
+Alias of remove kept for backwards compatability
+
*ready* <device>::
Check device to see if it has all of it's devices in cache for mounting.
diff --git a/cmds-device.c b/cmds-device.c
index c588a6e0..0e605002 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -143,20 +143,14 @@ error_out:
return !!ret;
}
-static const char * const cmd_rm_dev_usage[] = {
- "btrfs device delete <device> [<device>...] <path>",
- "Remove a device from a filesystem",
- NULL
-};
-
-static int cmd_rm_dev(int argc, char **argv)
+static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
{
char *mntpnt;
int i, fdmnt, ret=0, e;
DIR *dirstream = NULL;
if (check_argc_min(argc, 3))
- usage(cmd_rm_dev_usage);
+ usage(usagestr);
mntpnt = argv[argc - 1];
@@ -198,6 +192,28 @@ static int cmd_rm_dev(int argc, char **argv)
return !!ret;
}
+static const char * const cmd_rm_dev_usage[] = {
+ "btrfs device remove <device> [<device>...] <path>",
+ "Remove a device from a filesystem",
+ NULL
+};
+
+static int cmd_rm_dev(int argc, char **argv)
+{
+ return _cmd_rm_dev(argc, argv, cmd_rm_dev_usage);
+}
+
+static const char * const cmd_del_dev_usage[] = {
+ "btrfs device delete <device> [<device>...] <path>",
+ "Remove a device from a filesystem",
+ NULL
+};
+
+static int cmd_del_dev(int argc, char **argv)
+{
+ return _cmd_rm_dev(argc, argv, cmd_del_dev_usage);
+}
+
static const char * const cmd_scan_dev_usage[] = {
"btrfs device scan [(-d|--all-devices)|<device> [<device>...]]",
"Scan devices for a btrfs filesystem",
@@ -590,7 +606,8 @@ static const char device_cmd_group_info[] =
const struct cmd_group device_cmd_group = {
device_cmd_group_usage, device_cmd_group_info, {
{ "add", cmd_add_dev, cmd_add_dev_usage, NULL, 0 },
- { "delete", cmd_rm_dev, cmd_rm_dev_usage, NULL, 0 },
+ { "delete", cmd_del_dev, cmd_del_dev_usage, NULL, CMD_ALIAS },
+ { "remove", cmd_rm_dev, cmd_rm_dev_usage, NULL, 0 },
{ "scan", cmd_scan_dev, cmd_scan_dev_usage, NULL, 0 },
{ "ready", cmd_ready_dev, cmd_ready_dev_usage, NULL, 0 },
{ "stats", cmd_dev_stats, cmd_dev_stats_usage, NULL, 0 },
diff --git a/commands.h b/commands.h
index e995d79c..d2bb0934 100644
--- a/commands.h
+++ b/commands.h
@@ -19,6 +19,7 @@
enum {
CMD_HIDDEN = (1 << 0), /* should not be in help listings */
+ CMD_ALIAS = (1 << 1), /* alias of next command in cmd_group */
};
struct cmd_struct {
diff --git a/help.c b/help.c
index e57d9f28..eacce845 100644
--- a/help.c
+++ b/help.c
@@ -79,11 +79,13 @@ static int do_usage_one_command(const char * const *usagestr,
static int usage_command_internal(const char * const *usagestr,
const char *token, int full, int lst,
- FILE *outf)
+ int alias, FILE *outf)
{
- unsigned int flags = USAGE_SHORT;
+ unsigned int flags = 0;
int ret;
+ if (!alias)
+ flags |= USAGE_SHORT;
if (full)
flags |= USAGE_LONG | USAGE_OPTIONS;
if (lst)
@@ -108,7 +110,7 @@ static void usage_command_usagestr(const char * const *usagestr,
FILE *outf = err ? stderr : stdout;
int ret;
- ret = usage_command_internal(usagestr, token, full, 0, outf);
+ ret = usage_command_internal(usagestr, token, full, 0, 0, outf);
if (!ret)
fputc('\n', outf);
}
@@ -144,7 +146,7 @@ static void usage_command_group_internal(const struct cmd_group *grp, int full,
}
usage_command_internal(cmd->usagestr, cmd->token, full,
- 1, outf);
+ 1, cmd->flags & CMD_ALIAS, outf);
continue;
}