Lines Matching refs:bctl
3232 struct btrfs_balance_control *bctl) in insert_balance_item() argument
3267 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->data); in insert_balance_item()
3269 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->meta); in insert_balance_item()
3271 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->sys); in insert_balance_item()
3274 btrfs_set_balance_flags(leaf, item, bctl->flags); in insert_balance_item()
3328 static void update_balance_args(struct btrfs_balance_control *bctl) in update_balance_args() argument
3333 if (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3334 bctl->data.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3335 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3336 bctl->sys.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3337 if (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3338 bctl->meta.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3347 if (!(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3348 !(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3349 !(bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3350 bctl->data.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3351 bctl->data.usage = 90; in update_balance_args()
3353 if (!(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3354 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3355 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3356 bctl->sys.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3357 bctl->sys.usage = 90; in update_balance_args()
3359 if (!(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3360 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3361 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3362 bctl->meta.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3363 bctl->meta.usage = 90; in update_balance_args()
3372 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in reset_balance_state() local
3381 kfree(bctl); in reset_balance_state()
3571 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in should_balance_chunk() local
3577 (bctl->flags & BTRFS_BALANCE_TYPE_MASK))) { in should_balance_chunk()
3582 bargs = &bctl->data; in should_balance_chunk()
3584 bargs = &bctl->sys; in should_balance_chunk()
3586 bargs = &bctl->meta; in should_balance_chunk()
3658 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in __btrfs_balance() local
3671 u64 limit_data = bctl->data.limit; in __btrfs_balance()
3672 u64 limit_meta = bctl->meta.limit; in __btrfs_balance()
3673 u64 limit_sys = bctl->sys.limit; in __btrfs_balance()
3687 memset(&bctl->stat, 0, sizeof(bctl->stat)); in __btrfs_balance()
3695 bctl->data.limit = limit_data; in __btrfs_balance()
3696 bctl->meta.limit = limit_meta; in __btrfs_balance()
3697 bctl->sys.limit = limit_sys; in __btrfs_balance()
3746 bctl->stat.considered++; in __btrfs_balance()
3761 bctl->stat.expected++; in __btrfs_balance()
3779 count_data < bctl->data.limit_min) in __btrfs_balance()
3781 count_meta < bctl->meta.limit_min) in __btrfs_balance()
3783 count_sys < bctl->sys.limit_min)) { in __btrfs_balance()
3818 bctl->stat.completed++; in __btrfs_balance()
4002 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in describe_balance_start_or_resume() local
4019 if (bctl->flags & BTRFS_BALANCE_FORCE) in describe_balance_start_or_resume()
4022 if (bctl->flags & BTRFS_BALANCE_DATA) { in describe_balance_start_or_resume()
4023 describe_balance_args(&bctl->data, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4027 if (bctl->flags & BTRFS_BALANCE_METADATA) { in describe_balance_start_or_resume()
4028 describe_balance_args(&bctl->meta, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4032 if (bctl->flags & BTRFS_BALANCE_SYSTEM) { in describe_balance_start_or_resume()
4033 describe_balance_args(&bctl->sys, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4044 (bctl->flags & BTRFS_BALANCE_RESUME) ? in describe_balance_start_or_resume()
4054 struct btrfs_balance_control *bctl, in btrfs_balance() argument
4082 if (mixed && (bctl->flags & allowed)) { in btrfs_balance()
4083 if (!(bctl->flags & BTRFS_BALANCE_DATA) || in btrfs_balance()
4084 !(bctl->flags & BTRFS_BALANCE_METADATA) || in btrfs_balance()
4085 memcmp(&bctl->data, &bctl->meta, sizeof(bctl->data))) { in btrfs_balance()
4109 if (!validate_convert_profile(fs_info, &bctl->data, allowed, "data") || in btrfs_balance()
4110 !validate_convert_profile(fs_info, &bctl->meta, allowed, "metadata") || in btrfs_balance()
4111 !validate_convert_profile(fs_info, &bctl->sys, allowed, "system")) { in btrfs_balance()
4129 if (((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4131 !(bctl->sys.target & allowed)) || in btrfs_balance()
4132 ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4134 !(bctl->meta.target & allowed))) in btrfs_balance()
4140 meta_target = (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4141 bctl->meta.target : fs_info->avail_metadata_alloc_bits; in btrfs_balance()
4142 data_target = (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4143 bctl->data.target : fs_info->avail_data_alloc_bits; in btrfs_balance()
4147 if (bctl->flags & BTRFS_BALANCE_FORCE) { in btrfs_balance()
4174 ret = insert_balance_item(fs_info, bctl); in btrfs_balance()
4178 if (!(bctl->flags & BTRFS_BALANCE_RESUME)) { in btrfs_balance()
4182 fs_info->balance_ctl = bctl; in btrfs_balance()
4187 update_balance_args(bctl); in btrfs_balance()
4238 if (bctl->flags & BTRFS_BALANCE_RESUME) in btrfs_balance()
4241 kfree(bctl); in btrfs_balance()
4293 struct btrfs_balance_control *bctl; in btrfs_recover_balance() local
4317 bctl = kzalloc(sizeof(*bctl), GFP_NOFS); in btrfs_recover_balance()
4318 if (!bctl) { in btrfs_recover_balance()
4326 bctl->flags = btrfs_balance_flags(leaf, item); in btrfs_recover_balance()
4327 bctl->flags |= BTRFS_BALANCE_RESUME; in btrfs_recover_balance()
4330 btrfs_disk_balance_args_to_cpu(&bctl->data, &disk_bargs); in btrfs_recover_balance()
4332 btrfs_disk_balance_args_to_cpu(&bctl->meta, &disk_bargs); in btrfs_recover_balance()
4334 btrfs_disk_balance_args_to_cpu(&bctl->sys, &disk_bargs); in btrfs_recover_balance()
4355 fs_info->balance_ctl = bctl; in btrfs_recover_balance()