int e;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_balance_pause_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_balance_pause_usage);
- path = argv[1];
+ path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
int e;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_balance_cancel_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_balance_cancel_usage);
- path = argv[1];
+ path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
int ret;
int e;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_balance_resume_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_balance_resume_usage);
- path = argv[1];
+ path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
int i, fdmnt, ret = 0;
DIR *dirstream = NULL;
- if (check_argc_min(argc, 3))
+ clean_args_no_options(argc, argv, usagestr);
+
+ if (check_argc_min(argc - optind, 2))
usage(usagestr);
mntpnt = argv[argc - 1];
if (fdmnt < 0)
return 1;
- for(i=1 ; i < argc - 1; i++ ){
+ for(i = optind; i < argc - 1; i++) {
struct btrfs_ioctl_vol_args arg;
int res;
int ret;
char *path;
- if (check_argc_min(argc, 2))
+ clean_args_no_options(argc, argv, cmd_device_ready_usage);
+
+ if (check_argc_min(argc - optind, 1))
usage(cmd_device_ready_usage);
fd = open("/dev/btrfs-control", O_RDWR);
return 1;
}
- path = canonicalize_path(argv[argc - 1]);
+ path = canonicalize_path(argv[optind]);
if (!path) {
error("could not canonicalize pathname '%s': %s",
- argv[argc - 1], strerror(errno));
+ argv[optind], strerror(errno));
ret = 1;
goto out;
}
unit_mode = get_unit_mode_from_arg(&argc, argv, 1);
- if (check_argc_min(argc, 2) || argv[1][0] == '-')
+ clean_args_no_options(argc, argv, cmd_device_usage_usage);
+
+ if (check_argc_min(argc - optind, 1))
usage(cmd_device_usage_usage);
- for (i = 1; i < argc; i++) {
+ for (i = optind; i < argc; i++) {
int fd;
DIR *dirstream = NULL;
unit_mode = get_unit_mode_from_arg(&argc, argv, 1);
- if (argc != 2 || argv[1][0] == '-')
+ clean_args_no_options(argc, argv, cmd_filesystem_df_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_filesystem_df_usage);
- path = argv[1];
+ path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
char *path;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_filesystem_sync_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_filesystem_sync_usage);
- path = argv[1];
+ path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
DIR *dirstream = NULL;
struct stat st;
- if (check_argc_exact(argc, 3))
+ clean_args_no_options(argc, argv, cmd_filesystem_resize_usage);
+
+ if (check_argc_exact(argc - optind, 2))
usage(cmd_filesystem_resize_usage);
- amount = argv[1];
- path = argv[2];
+ amount = argv[optind];
+ path = argv[optind + 1];
len = strlen(amount);
if (len == 0 || len >= BTRFS_VOL_NAME_MAX) {
static int cmd_filesystem_label(int argc, char **argv)
{
- if (check_argc_min(argc, 2) || check_argc_max(argc, 3))
+ clean_args_no_options(argc, argv, cmd_filesystem_label_usage);
+
+ if (check_argc_min(argc - optind, 2) ||
+ check_argc_max(argc - optind, 3))
usage(cmd_filesystem_label_usage);
- if (argc > 2) {
- return set_label(argv[1], argv[2]);
+ if (argc - optind > 2) {
+ return set_label(argv[optind], argv[optind + 1]);
} else {
char label[BTRFS_LABEL_SIZE];
int ret;
- ret = get_label(argv[1], label);
+ ret = get_label(argv[optind], label);
if (!ret)
fprintf(stdout, "%s\n", label);
char path[PATH_MAX];
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 3))
+ clean_args_no_options(argc, argv, cmd_inspect_subvolid_resolve_usage);
+
+ if (check_argc_exact(argc - optind, 2))
usage(cmd_inspect_subvolid_resolve_usage);
- fd = btrfs_open_dir(argv[2], &dirstream, 1);
+ fd = btrfs_open_dir(argv[optind], &dirstream, 1);
if (fd < 0) {
ret = -ENOENT;
goto out;
}
- subvol_id = arg_strtou64(argv[1]);
+ subvol_id = arg_strtou64(argv[optind]);
ret = btrfs_subvolid_resolve(fd, path, sizeof(path), subvol_id);
if (ret) {
fprintf(stderr,
- "%s: btrfs_subvolid_resolve(subvol_id %llu) failed with ret=%d\n",
- argv[0], (unsigned long long)subvol_id, ret);
+ "btrfs_subvolid_resolve(subvol_id %llu) failed with ret=%d\n",
+ (unsigned long long)subvol_id, ret);
goto out;
}
u64 rootid;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_inspect_rootid_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_inspect_rootid_usage);
- fd = btrfs_open_dir(argv[1], &dirstream, 1);
+ fd = btrfs_open_dir(argv[optind], &dirstream, 1);
if (fd < 0) {
ret = -ENOENT;
goto out;
ret = lookup_ino_rootid(fd, &rootid);
if (ret) {
- fprintf(stderr, "%s: rootid failed with ret=%d\n",
- argv[0], ret);
+ fprintf(stderr, "rootid failed with ret=%d\n", ret);
goto out;
}
char *name = NULL;
int types = 0;
+ clean_args_no_options(argc, argv, cmd_property_get_usage);
+
if (check_argc_min(argc, 2) || check_argc_max(argc, 5))
usage(cmd_property_get_usage);
char *value = NULL;
int types = 0;
+ clean_args_no_options(argc, argv, cmd_property_set_usage);
+
if (check_argc_min(argc, 4) || check_argc_max(argc, 6))
usage(cmd_property_set_usage);
char *object = NULL;
int types = 0;
+ clean_args_no_options(argc, argv, cmd_property_list_usage);
+
if (check_argc_min(argc, 2) || check_argc_max(argc, 4))
usage(cmd_property_list_usage);
int ret = 0;
int fd;
int e;
- char *path = argv[2];
+ char *path;
struct btrfs_ioctl_qgroup_create_args args;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 3))
+ if (check_argc_exact(argc - optind, 3))
return -1;
memset(&args, 0, sizeof(args));
args.create = create;
- args.qgroupid = parse_qgroupid(argv[1]);
+ args.qgroupid = parse_qgroupid(argv[optind]);
+ path = argv[optind + 1];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
static int cmd_qgroup_assign(int argc, char **argv)
{
- int ret = qgroup_assign(1, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_qgroup_assign_usage);
+
+ ret = qgroup_assign(1, argc, argv);
+
if (ret < 0)
usage(cmd_qgroup_assign_usage);
return ret;
static int cmd_qgroup_remove(int argc, char **argv)
{
- int ret = qgroup_assign(0, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_qgroup_remove_usage);
+
+ ret = qgroup_assign(0, argc, argv);
+
if (ret < 0)
usage(cmd_qgroup_remove_usage);
return ret;
static int cmd_qgroup_create(int argc, char **argv)
{
- int ret = qgroup_create(1, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_qgroup_create_usage);
+
+ ret = qgroup_create(1, argc, argv);
+
if (ret < 0)
usage(cmd_qgroup_create_usage);
return ret;
static int cmd_qgroup_destroy(int argc, char **argv)
{
- int ret = qgroup_create(0, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_qgroup_destroy_usage);
+
+ ret = qgroup_create(0, argc, argv);
+
if (ret < 0)
usage(cmd_qgroup_destroy_usage);
return ret;
static int cmd_quota_enable(int argc, char **argv)
{
- int ret = quota_ctl(BTRFS_QUOTA_CTL_ENABLE, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_quota_enable_usage);
+
+ ret = quota_ctl(BTRFS_QUOTA_CTL_ENABLE, argc, argv);
+
if (ret < 0)
usage(cmd_quota_enable_usage);
return ret;
static int cmd_quota_disable(int argc, char **argv)
{
- int ret = quota_ctl(BTRFS_QUOTA_CTL_DISABLE, argc, argv);
+ int ret;
+
+ clean_args_no_options(argc, argv, cmd_quota_disable_usage);
+
+ ret = quota_ctl(BTRFS_QUOTA_CTL_DISABLE, argc, argv);
+
if (ret < 0)
usage(cmd_quota_disable_usage);
return ret;
char *devname;
int ret;
+ clean_args_no_options(argc, argv, cmd_rescue_zero_log_usage);
+
if (check_argc_exact(argc, 2))
usage(cmd_rescue_zero_log_usage);
int fdmnt = -1;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_scrub_cancel_usage);
+
+ if (check_argc_exact(argc - optind, 1))
usage(cmd_scrub_cancel_usage);
- path = argv[1];
+ path = argv[optind];
fdmnt = open_path_or_dev_mnt(path, &dirstream, 1);
if (fdmnt < 0) {
u64 default_id;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 2))
+ clean_args_no_options(argc, argv, cmd_subvol_get_default_usage);
+
+ if (check_argc_exact(argc - optind, 2))
usage(cmd_subvol_get_default_usage);
subvol = argv[1];
char *subvolid;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 3))
+ clean_args_no_options(argc, argv, cmd_subvol_set_default_usage);
+
+ if (check_argc_exact(argc - optind, 2))
usage(cmd_subvol_set_default_usage);
- subvolid = argv[1];
- path = argv[2];
+ subvolid = argv[optind];
+ path = argv[optind + 1];
objectid = arg_strtou64(subvolid);
u64 last_gen;
DIR *dirstream = NULL;
- if (check_argc_exact(argc, 3))
+ clean_args_no_options(argc, argv, cmd_subvol_find_new_usage);
+
+ if (check_argc_exact(argc - optind, 2))
usage(cmd_subvol_find_new_usage);
- subvol = argv[1];
- last_gen = arg_strtou64(argv[2]);
+ subvol = argv[optind];
+ last_gen = arg_strtou64(argv[optind + 1]);
ret = test_issubvolume(subvol);
if (ret < 0) {