btrfs-progs: Fix a regression that btrfs filesystem label doesn't work

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>
master
Satoru Takeuchi 2016-03-14 09:15:42 +09:00 committed by David Sterba
parent cfa4b5bc4d
commit 1a521af045
1 changed files with 3 additions and 3 deletions

View 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];