Lines Matching refs:bctl
3427 struct btrfs_balance_control *bctl) in insert_balance_item() argument
3462 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->data); in insert_balance_item()
3464 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->meta); in insert_balance_item()
3466 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->sys); in insert_balance_item()
3469 btrfs_set_balance_flags(leaf, item, bctl->flags); in insert_balance_item()
3523 static void update_balance_args(struct btrfs_balance_control *bctl) in update_balance_args() argument
3528 if (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3529 bctl->data.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3530 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3531 bctl->sys.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3532 if (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3533 bctl->meta.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3542 if (!(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3543 !(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3544 !(bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3545 bctl->data.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3546 bctl->data.usage = 90; in update_balance_args()
3548 if (!(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3549 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3550 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3551 bctl->sys.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3552 bctl->sys.usage = 90; in update_balance_args()
3554 if (!(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3555 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3556 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3557 bctl->meta.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3558 bctl->meta.usage = 90; in update_balance_args()
3567 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in reset_balance_state() local
3576 kfree(bctl); in reset_balance_state()
3761 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in should_balance_chunk() local
3767 (bctl->flags & BTRFS_BALANCE_TYPE_MASK))) { in should_balance_chunk()
3772 bargs = &bctl->data; in should_balance_chunk()
3774 bargs = &bctl->sys; in should_balance_chunk()
3776 bargs = &bctl->meta; in should_balance_chunk()
3848 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in __btrfs_balance() local
3861 u64 limit_data = bctl->data.limit; in __btrfs_balance()
3862 u64 limit_meta = bctl->meta.limit; in __btrfs_balance()
3863 u64 limit_sys = bctl->sys.limit; in __btrfs_balance()
3877 memset(&bctl->stat, 0, sizeof(bctl->stat)); in __btrfs_balance()
3885 bctl->data.limit = limit_data; in __btrfs_balance()
3886 bctl->meta.limit = limit_meta; in __btrfs_balance()
3887 bctl->sys.limit = limit_sys; in __btrfs_balance()
3936 bctl->stat.considered++; in __btrfs_balance()
3951 bctl->stat.expected++; in __btrfs_balance()
3969 count_data < bctl->data.limit_min) in __btrfs_balance()
3971 count_meta < bctl->meta.limit_min) in __btrfs_balance()
3973 count_sys < bctl->sys.limit_min)) { in __btrfs_balance()
4008 bctl->stat.completed++; in __btrfs_balance()
4193 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in describe_balance_start_or_resume() local
4210 if (bctl->flags & BTRFS_BALANCE_FORCE) in describe_balance_start_or_resume()
4213 if (bctl->flags & BTRFS_BALANCE_DATA) { in describe_balance_start_or_resume()
4214 describe_balance_args(&bctl->data, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4218 if (bctl->flags & BTRFS_BALANCE_METADATA) { in describe_balance_start_or_resume()
4219 describe_balance_args(&bctl->meta, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4223 if (bctl->flags & BTRFS_BALANCE_SYSTEM) { in describe_balance_start_or_resume()
4224 describe_balance_args(&bctl->sys, tmp_buf, sizeof(tmp_buf)); in describe_balance_start_or_resume()
4235 (bctl->flags & BTRFS_BALANCE_RESUME) ? in describe_balance_start_or_resume()
4245 struct btrfs_balance_control *bctl, in btrfs_balance() argument
4273 if (mixed && (bctl->flags & allowed)) { in btrfs_balance()
4274 if (!(bctl->flags & BTRFS_BALANCE_DATA) || in btrfs_balance()
4275 !(bctl->flags & BTRFS_BALANCE_METADATA) || in btrfs_balance()
4276 memcmp(&bctl->data, &bctl->meta, sizeof(bctl->data))) { in btrfs_balance()
4300 if (!validate_convert_profile(fs_info, &bctl->data, allowed, "data") || in btrfs_balance()
4301 !validate_convert_profile(fs_info, &bctl->meta, allowed, "metadata") || in btrfs_balance()
4302 !validate_convert_profile(fs_info, &bctl->sys, allowed, "system")) { in btrfs_balance()
4320 if (((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4322 !(bctl->sys.target & allowed)) || in btrfs_balance()
4323 ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
4325 !(bctl->meta.target & allowed))) in btrfs_balance()
4331 meta_target = (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4332 bctl->meta.target : fs_info->avail_metadata_alloc_bits; in btrfs_balance()
4333 data_target = (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) ? in btrfs_balance()
4334 bctl->data.target : fs_info->avail_data_alloc_bits; in btrfs_balance()
4338 if (bctl->flags & BTRFS_BALANCE_FORCE) { in btrfs_balance()
4357 ret = insert_balance_item(fs_info, bctl); in btrfs_balance()
4361 if (!(bctl->flags & BTRFS_BALANCE_RESUME)) { in btrfs_balance()
4365 fs_info->balance_ctl = bctl; in btrfs_balance()
4370 update_balance_args(bctl); in btrfs_balance()
4423 if (bctl->flags & BTRFS_BALANCE_RESUME) in btrfs_balance()
4426 kfree(bctl); in btrfs_balance()
4482 struct btrfs_balance_control *bctl; in btrfs_recover_balance() local
4506 bctl = kzalloc(sizeof(*bctl), GFP_NOFS); in btrfs_recover_balance()
4507 if (!bctl) { in btrfs_recover_balance()
4515 bctl->flags = btrfs_balance_flags(leaf, item); in btrfs_recover_balance()
4516 bctl->flags |= BTRFS_BALANCE_RESUME; in btrfs_recover_balance()
4519 btrfs_disk_balance_args_to_cpu(&bctl->data, &disk_bargs); in btrfs_recover_balance()
4521 btrfs_disk_balance_args_to_cpu(&bctl->meta, &disk_bargs); in btrfs_recover_balance()
4523 btrfs_disk_balance_args_to_cpu(&bctl->sys, &disk_bargs); in btrfs_recover_balance()
4544 fs_info->balance_ctl = bctl; in btrfs_recover_balance()