Lines Matching refs:bctl

3214 			       struct btrfs_balance_control *bctl)  in insert_balance_item()  argument
3249 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->data); in insert_balance_item()
3251 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->meta); in insert_balance_item()
3253 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->sys); in insert_balance_item()
3256 btrfs_set_balance_flags(leaf, item, bctl->flags); in insert_balance_item()
3310 static void update_balance_args(struct btrfs_balance_control *bctl) in update_balance_args() argument
3315 if (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3316 bctl->data.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3317 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3318 bctl->sys.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3319 if (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3320 bctl->meta.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3329 if (!(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3330 !(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3331 !(bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3332 bctl->data.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3333 bctl->data.usage = 90; in update_balance_args()
3335 if (!(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3336 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3337 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3338 bctl->sys.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3339 bctl->sys.usage = 90; in update_balance_args()
3341 if (!(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3342 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3343 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3344 bctl->meta.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3345 bctl->meta.usage = 90; in update_balance_args()
3354 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in reset_balance_state() local
3363 kfree(bctl); in reset_balance_state()
3554 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in should_balance_chunk() local
3560 (bctl->flags & BTRFS_BALANCE_TYPE_MASK))) { in should_balance_chunk()
3565 bargs = &bctl->data; in should_balance_chunk()
3567 bargs = &bctl->sys; in should_balance_chunk()
3569 bargs = &bctl->meta; in should_balance_chunk()
3641 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in __btrfs_balance() local
3654 u64 limit_data = bctl->data.limit; in __btrfs_balance()
3655 u64 limit_meta = bctl->meta.limit; in __btrfs_balance()
3656 u64 limit_sys = bctl->sys.limit; in __btrfs_balance()
3670 memset(&bctl->stat, 0, sizeof(bctl->stat)); in __btrfs_balance()
3678 bctl->data.limit = limit_data; in __btrfs_balance()
3679 bctl->meta.limit = limit_meta; in __btrfs_balance()
3680 bctl->sys.limit = limit_sys; in __btrfs_balance()
3729 bctl->stat.considered++; in __btrfs_balance()
3744 bctl->stat.expected++; in __btrfs_balance()
3762 count_data < bctl->data.limit_min) in __btrfs_balance()
3764 count_meta < bctl->meta.limit_min) in __btrfs_balance()
3766 count_sys < bctl->sys.limit_min)) { in __btrfs_balance()
3801 bctl->stat.completed++; in __btrfs_balance()
3978 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in describe_balance_start_or_resume() local
3995 if (bctl->flags & BTRFS_BALANCE_FORCE) in describe_balance_start_or_resume()
3998 if (bctl->flags & BTRFS_BALANCE_DATA) { in describe_balance_start_or_resume()
3999 describe_balance_args(&bctl->data, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4003 if (bctl->flags & BTRFS_BALANCE_METADATA) { in describe_balance_start_or_resume()
4004 describe_balance_args(&bctl->meta, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4008 if (bctl->flags & BTRFS_BALANCE_SYSTEM) { in describe_balance_start_or_resume()
4009 describe_balance_args(&bctl->sys, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4020 (bctl->flags & BTRFS_BALANCE_RESUME) ? in describe_balance_start_or_resume()
4030 struct btrfs_balance_control *bctl, in btrfs_balance() argument
4058 if (mixed && (bctl->flags & allowed)) { in btrfs_balance()
4059 if (!(bctl->flags & BTRFS_BALANCE_DATA) || in btrfs_balance()
4060 !(bctl->flags & BTRFS_BALANCE_METADATA) || in btrfs_balance()
4061 memcmp(&bctl->data, &bctl->meta, sizeof(bctl->data))) { in btrfs_balance()
4081 if (validate_convert_profile(&bctl->data, allowed)) { in btrfs_balance()
4084 btrfs_bg_type_to_raid_name(bctl->data.target)); in btrfs_balance()
4088 if (validate_convert_profile(&bctl->meta, allowed)) { in btrfs_balance()
4091 btrfs_bg_type_to_raid_name(bctl->meta.target)); in btrfs_balance()
4095 if (validate_convert_profile(&bctl->sys, allowed)) { in btrfs_balance()
4098 btrfs_bg_type_to_raid_name(bctl->sys.target)); in btrfs_balance()
4116 if (((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4118 !(bctl->sys.target & allowed)) || in btrfs_balance()
4119 ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4121 !(bctl->meta.target & allowed))) in btrfs_balance()
4127 meta_target = (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4128 bctl->meta.target : fs_info->avail_metadata_alloc_bits; in btrfs_balance()
4129 data_target = (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4130 bctl->data.target : fs_info->avail_data_alloc_bits; in btrfs_balance()
4134 if (bctl->flags & BTRFS_BALANCE_FORCE) { in btrfs_balance()
4161 ret = insert_balance_item(fs_info, bctl); in btrfs_balance()
4165 if (!(bctl->flags & BTRFS_BALANCE_RESUME)) { in btrfs_balance()
4169 fs_info->balance_ctl = bctl; in btrfs_balance()
4174 update_balance_args(bctl); in btrfs_balance()
4210 if (bctl->flags & BTRFS_BALANCE_RESUME) in btrfs_balance()
4213 kfree(bctl); in btrfs_balance()
4263 struct btrfs_balance_control *bctl; in btrfs_recover_balance() local
4287 bctl = kzalloc(sizeof(*bctl), GFP_NOFS); in btrfs_recover_balance()
4288 if (!bctl) { in btrfs_recover_balance()
4296 bctl->flags = btrfs_balance_flags(leaf, item); in btrfs_recover_balance()
4297 bctl->flags |= BTRFS_BALANCE_RESUME; in btrfs_recover_balance()
4300 btrfs_disk_balance_args_to_cpu(&bctl->data, &disk_bargs); in btrfs_recover_balance()
4302 btrfs_disk_balance_args_to_cpu(&bctl->meta, &disk_bargs); in btrfs_recover_balance()
4304 btrfs_disk_balance_args_to_cpu(&bctl->sys, &disk_bargs); in btrfs_recover_balance()
4323 fs_info->balance_ctl = bctl; in btrfs_recover_balance()