Lines Matching refs:bargs
3392 struct btrfs_balance_args *bargs) in chunk_profiles_filter() argument
3397 if (bargs->profiles & chunk_type) in chunk_profiles_filter()
3404 struct btrfs_balance_args *bargs) in chunk_usage_range_filter() argument
3415 if (bargs->usage_min == 0) in chunk_usage_range_filter()
3419 bargs->usage_min); in chunk_usage_range_filter()
3421 if (bargs->usage_max == 0) in chunk_usage_range_filter()
3423 else if (bargs->usage_max > 100) in chunk_usage_range_filter()
3427 bargs->usage_max); in chunk_usage_range_filter()
3437 u64 chunk_offset, struct btrfs_balance_args *bargs) in chunk_usage_filter() argument
3446 if (bargs->usage_min == 0) in chunk_usage_filter()
3448 else if (bargs->usage > 100) in chunk_usage_filter()
3451 user_thresh = div_factor_fine(cache->length, bargs->usage); in chunk_usage_filter()
3462 struct btrfs_balance_args *bargs) in chunk_devid_filter() argument
3470 if (btrfs_stripe_devid(leaf, stripe) == bargs->devid) in chunk_devid_filter()
3492 struct btrfs_balance_args *bargs) in chunk_drange_filter() argument
3502 if (!(bargs->flags & BTRFS_BALANCE_ARGS_DEVID)) in chunk_drange_filter()
3510 if (btrfs_stripe_devid(leaf, stripe) != bargs->devid) in chunk_drange_filter()
3517 if (stripe_offset < bargs->pend && in chunk_drange_filter()
3518 stripe_offset + stripe_length > bargs->pstart) in chunk_drange_filter()
3529 struct btrfs_balance_args *bargs) in chunk_vrange_filter() argument
3531 if (chunk_offset < bargs->vend && in chunk_vrange_filter()
3532 chunk_offset + btrfs_chunk_length(leaf, chunk) > bargs->vstart) in chunk_vrange_filter()
3541 struct btrfs_balance_args *bargs) in chunk_stripes_range_filter() argument
3545 if (bargs->stripes_min <= num_stripes in chunk_stripes_range_filter()
3546 && num_stripes <= bargs->stripes_max) in chunk_stripes_range_filter()
3553 struct btrfs_balance_args *bargs) in chunk_soft_convert_filter() argument
3555 if (!(bargs->flags & BTRFS_BALANCE_ARGS_CONVERT)) in chunk_soft_convert_filter()
3561 if (bargs->target == chunk_type) in chunk_soft_convert_filter()
3572 struct btrfs_balance_args *bargs = NULL; in should_balance_chunk() local
3582 bargs = &bctl->data; in should_balance_chunk()
3584 bargs = &bctl->sys; in should_balance_chunk()
3586 bargs = &bctl->meta; in should_balance_chunk()
3589 if ((bargs->flags & BTRFS_BALANCE_ARGS_PROFILES) && in should_balance_chunk()
3590 chunk_profiles_filter(chunk_type, bargs)) { in should_balance_chunk()
3595 if ((bargs->flags & BTRFS_BALANCE_ARGS_USAGE) && in should_balance_chunk()
3596 chunk_usage_filter(fs_info, chunk_offset, bargs)) { in should_balance_chunk()
3598 } else if ((bargs->flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in should_balance_chunk()
3599 chunk_usage_range_filter(fs_info, chunk_offset, bargs)) { in should_balance_chunk()
3604 if ((bargs->flags & BTRFS_BALANCE_ARGS_DEVID) && in should_balance_chunk()
3605 chunk_devid_filter(leaf, chunk, bargs)) { in should_balance_chunk()
3610 if ((bargs->flags & BTRFS_BALANCE_ARGS_DRANGE) && in should_balance_chunk()
3611 chunk_drange_filter(leaf, chunk, bargs)) { in should_balance_chunk()
3616 if ((bargs->flags & BTRFS_BALANCE_ARGS_VRANGE) && in should_balance_chunk()
3617 chunk_vrange_filter(leaf, chunk, chunk_offset, bargs)) { in should_balance_chunk()
3622 if ((bargs->flags & BTRFS_BALANCE_ARGS_STRIPES_RANGE) && in should_balance_chunk()
3623 chunk_stripes_range_filter(leaf, chunk, bargs)) { in should_balance_chunk()
3628 if ((bargs->flags & BTRFS_BALANCE_ARGS_SOFT) && in should_balance_chunk()
3629 chunk_soft_convert_filter(chunk_type, bargs)) { in should_balance_chunk()
3636 if ((bargs->flags & BTRFS_BALANCE_ARGS_LIMIT)) { in should_balance_chunk()
3637 if (bargs->limit == 0) in should_balance_chunk()
3640 bargs->limit--; in should_balance_chunk()
3641 } else if ((bargs->flags & BTRFS_BALANCE_ARGS_LIMIT_RANGE)) { in should_balance_chunk()
3647 if (bargs->limit_max == 0) in should_balance_chunk()
3650 bargs->limit_max--; in should_balance_chunk()
3880 const struct btrfs_balance_args *bargs, in validate_convert_profile() argument
3883 if (!(bargs->flags & BTRFS_BALANCE_ARGS_CONVERT)) in validate_convert_profile()
3887 if (alloc_profile_is_valid(bargs->target, 1) && in validate_convert_profile()
3888 (bargs->target & ~allowed) == 0) in validate_convert_profile()
3892 type, btrfs_bg_type_to_raid_name(bargs->target)); in validate_convert_profile()
3901 static void describe_balance_args(struct btrfs_balance_args *bargs, char *buf, in describe_balance_args() argument
3907 u64 flags = bargs->flags; in describe_balance_args()
3942 btrfs_bg_type_to_raid_name(bargs->target)); in describe_balance_args()
3948 btrfs_describe_block_groups(bargs->profiles, tmp_buf, in describe_balance_args()
3954 CHECK_APPEND_1ARG("usage=%llu,", bargs->usage); in describe_balance_args()
3958 bargs->usage_min, bargs->usage_max); in describe_balance_args()
3961 CHECK_APPEND_1ARG("devid=%llu,", bargs->devid); in describe_balance_args()
3965 bargs->pstart, bargs->pend); in describe_balance_args()
3969 bargs->vstart, bargs->vend); in describe_balance_args()
3972 CHECK_APPEND_1ARG("limit=%llu,", bargs->limit); in describe_balance_args()
3976 bargs->limit_min, bargs->limit_max); in describe_balance_args()
3980 bargs->stripes_min, bargs->stripes_max); in describe_balance_args()
4055 struct btrfs_ioctl_balance_args *bargs) in btrfs_balance() argument
4223 if (bargs) { in btrfs_balance()
4224 memset(bargs, 0, sizeof(*bargs)); in btrfs_balance()
4225 btrfs_update_ioctl_balance_args(fs_info, bargs); in btrfs_balance()