+ } else if (!strcmp(this_char, "limit")) {
+ if (!value || !*value) {
+ error("the limit filter requires an argument");
+ return 1;
+ }
+ if (parse_u64(value, &args->limit)) {
+ if (parse_range_u32(value, &args->limit_min,
+ &args->limit_max)) {
+ error("Invalid limit argument: %s",
+ value);
+ return 1;
+ }
+ args->flags &= ~BTRFS_BALANCE_ARGS_LIMIT;
+ args->flags |= BTRFS_BALANCE_ARGS_LIMIT_RANGE;
+ } else {
+ args->flags &= ~BTRFS_BALANCE_ARGS_LIMIT_RANGE;
+ args->flags |= BTRFS_BALANCE_ARGS_LIMIT;
+ }
+ } else if (!strcmp(this_char, "stripes")) {
+ if (!value || !*value) {
+ error("the stripes filter requires an argument");
+ return 1;
+ }
+ if (parse_range_u32(value, &args->stripes_min,
+ &args->stripes_max)) {
+ error("invalid stripes argument");
+ return 1;
+ }
+ args->flags |= BTRFS_BALANCE_ARGS_STRIPES_RANGE;