Lines Matching refs:bctl

2778 			       struct btrfs_balance_control *bctl)  in insert_balance_item()  argument
2812 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->data); in insert_balance_item()
2814 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->meta); in insert_balance_item()
2816 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->sys); in insert_balance_item()
2819 btrfs_set_balance_flags(leaf, item, bctl->flags); in insert_balance_item()
2872 static void update_balance_args(struct btrfs_balance_control *bctl) in update_balance_args() argument
2877 if (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
2878 bctl->data.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
2879 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
2880 bctl->sys.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
2881 if (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
2882 bctl->meta.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
2891 if (!(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
2892 !(bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
2893 bctl->data.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
2894 bctl->data.usage = 90; in update_balance_args()
2896 if (!(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
2897 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
2898 bctl->sys.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
2899 bctl->sys.usage = 90; in update_balance_args()
2901 if (!(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
2902 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
2903 bctl->meta.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
2904 bctl->meta.usage = 90; in update_balance_args()
2913 static void set_balance_control(struct btrfs_balance_control *bctl) in set_balance_control() argument
2915 struct btrfs_fs_info *fs_info = bctl->fs_info; in set_balance_control()
2920 fs_info->balance_ctl = bctl; in set_balance_control()
2926 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in unset_balance_control() local
2934 kfree(bctl); in unset_balance_control()
3072 struct btrfs_balance_control *bctl = root->fs_info->balance_ctl; in should_balance_chunk() local
3078 (bctl->flags & BTRFS_BALANCE_TYPE_MASK))) { in should_balance_chunk()
3083 bargs = &bctl->data; in should_balance_chunk()
3085 bargs = &bctl->sys; in should_balance_chunk()
3087 bargs = &bctl->meta; in should_balance_chunk()
3097 chunk_usage_filter(bctl->fs_info, chunk_offset, bargs)) { in should_balance_chunk()
3140 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in __btrfs_balance() local
3157 u64 limit_data = bctl->data.limit; in __btrfs_balance()
3158 u64 limit_meta = bctl->meta.limit; in __btrfs_balance()
3159 u64 limit_sys = bctl->sys.limit; in __btrfs_balance()
3196 memset(&bctl->stat, 0, sizeof(bctl->stat)); in __btrfs_balance()
3200 bctl->data.limit = limit_data; in __btrfs_balance()
3201 bctl->meta.limit = limit_meta; in __btrfs_balance()
3202 bctl->sys.limit = limit_sys; in __btrfs_balance()
3244 bctl->stat.considered++; in __btrfs_balance()
3256 bctl->stat.expected++; in __btrfs_balance()
3270 bctl->stat.completed++; in __btrfs_balance()
3343 int btrfs_balance(struct btrfs_balance_control *bctl, in btrfs_balance() argument
3346 struct btrfs_fs_info *fs_info = bctl->fs_info; in btrfs_balance()
3369 if (mixed && (bctl->flags & allowed)) { in btrfs_balance()
3370 if (!(bctl->flags & BTRFS_BALANCE_DATA) || in btrfs_balance()
3371 !(bctl->flags & BTRFS_BALANCE_METADATA) || in btrfs_balance()
3372 memcmp(&bctl->data, &bctl->meta, sizeof(bctl->data))) { in btrfs_balance()
3397 if ((bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3398 (!alloc_profile_is_valid(bctl->data.target, 1) || in btrfs_balance()
3399 (bctl->data.target & ~allowed))) { in btrfs_balance()
3402 bctl->data.target); in btrfs_balance()
3406 if ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3407 (!alloc_profile_is_valid(bctl->meta.target, 1) || in btrfs_balance()
3408 (bctl->meta.target & ~allowed))) { in btrfs_balance()
3411 bctl->meta.target); in btrfs_balance()
3415 if ((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3416 (!alloc_profile_is_valid(bctl->sys.target, 1) || in btrfs_balance()
3417 (bctl->sys.target & ~allowed))) { in btrfs_balance()
3420 bctl->sys.target); in btrfs_balance()
3426 if (!mixed && (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3427 (bctl->data.target & BTRFS_BLOCK_GROUP_DUP)) { in btrfs_balance()
3441 if (((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3443 !(bctl->sys.target & allowed)) || in btrfs_balance()
3444 ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3446 !(bctl->meta.target & allowed))) { in btrfs_balance()
3447 if (bctl->flags & BTRFS_BALANCE_FORCE) { in btrfs_balance()
3458 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) { in btrfs_balance()
3460 u64 target = bctl->sys.target; in btrfs_balance()
3478 ret = insert_balance_item(fs_info->tree_root, bctl); in btrfs_balance()
3482 if (!(bctl->flags & BTRFS_BALANCE_RESUME)) { in btrfs_balance()
3484 set_balance_control(bctl); in btrfs_balance()
3488 update_balance_args(bctl); in btrfs_balance()
3500 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) { in btrfs_balance()
3519 if (bctl->flags & BTRFS_BALANCE_RESUME) in btrfs_balance()
3522 kfree(bctl); in btrfs_balance()
3569 struct btrfs_balance_control *bctl; in btrfs_recover_balance() local
3593 bctl = kzalloc(sizeof(*bctl), GFP_NOFS); in btrfs_recover_balance()
3594 if (!bctl) { in btrfs_recover_balance()
3602 bctl->fs_info = fs_info; in btrfs_recover_balance()
3603 bctl->flags = btrfs_balance_flags(leaf, item); in btrfs_recover_balance()
3604 bctl->flags |= BTRFS_BALANCE_RESUME; in btrfs_recover_balance()
3607 btrfs_disk_balance_args_to_cpu(&bctl->data, &disk_bargs); in btrfs_recover_balance()
3609 btrfs_disk_balance_args_to_cpu(&bctl->meta, &disk_bargs); in btrfs_recover_balance()
3611 btrfs_disk_balance_args_to_cpu(&bctl->sys, &disk_bargs); in btrfs_recover_balance()
3618 set_balance_control(bctl); in btrfs_recover_balance()