btrfs-progs: Fix a regression that btrfs filesystem label doesn't work
authorSatoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Mon, 14 Mar 2016 00:15:42 +0000 (09:15 +0900)
committerDavid Sterba <dsterba@suse.com>
Mon, 14 Mar 2016 12:42:47 +0000 (13:42 +0100)
The number of arguments which is allowed to pass became wrong
from the following commit.

commit 176aeca9a148c5e29de0 ("btrfs-progs: add getopt stubs where needed")

* actual result

  ===========================================================
  # ./btrfs prop get /btrfs label
  label=foo
  # ./btrfs fi label /btrfs
  btrfs filesystem label: too few arguments
  usage: btrfs filesystem label [<device>|<mount_point>] [<newlabel>]

      Get or change the label of a filesystem

      With one argument, get the label of filesystem on <device>.
      If <newlabel> is passed, set the filesystem label to <newlabel>.

  # ./btrfs fi label /btrfs bar
  foo
  # ./btrfs prop get /btrfs label
  label=foo
  ===========================================================

* expected result

  ===========================================================
  # ./btrfs prop get /btrfs label
  label=foo
  # ./btrfs fi label /btrfs
  foo
  # ./btrfs fi label /btrfs bar
  # ./btrfs prop get /btrfs label
  label=bar
  ===========================================================

Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-filesystem.c

index 7e74e1b..45c16d2 100644 (file)
@@ -1255,11 +1255,11 @@ static int cmd_filesystem_label(int argc, char **argv)
 {
        clean_args_no_options(argc, argv, cmd_filesystem_label_usage);
 
-       if (check_argc_min(argc - optind, 2) ||
-                       check_argc_max(argc - optind, 3))
+       if (check_argc_min(argc - optind, 1) ||
+                       check_argc_max(argc - optind, 2))
                usage(cmd_filesystem_label_usage);
 
-       if (argc - optind > 2) {
+       if (argc - optind > 1) {
                return set_label(argv[optind], argv[optind + 1]);
        } else {
                char label[BTRFS_LABEL_SIZE];