Lines Matching refs:bctl

2948 			       struct btrfs_balance_control *bctl)  in insert_balance_item()  argument
2982 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->data); in insert_balance_item()
2984 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->meta); in insert_balance_item()
2986 btrfs_cpu_balance_args_to_disk(&disk_bargs, &bctl->sys); in insert_balance_item()
2989 btrfs_set_balance_flags(leaf, item, bctl->flags); in insert_balance_item()
3042 static void update_balance_args(struct btrfs_balance_control *bctl) in update_balance_args() argument
3047 if (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3048 bctl->data.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3049 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3050 bctl->sys.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3051 if (bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) in update_balance_args()
3052 bctl->meta.flags |= BTRFS_BALANCE_ARGS_SOFT; in update_balance_args()
3061 if (!(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3062 !(bctl->data.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3063 !(bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3064 bctl->data.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3065 bctl->data.usage = 90; in update_balance_args()
3067 if (!(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3068 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3069 !(bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3070 bctl->sys.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3071 bctl->sys.usage = 90; in update_balance_args()
3073 if (!(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE) && in update_balance_args()
3074 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_USAGE_RANGE) && in update_balance_args()
3075 !(bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT)) { in update_balance_args()
3076 bctl->meta.flags |= BTRFS_BALANCE_ARGS_USAGE; in update_balance_args()
3077 bctl->meta.usage = 90; in update_balance_args()
3086 static void set_balance_control(struct btrfs_balance_control *bctl) in set_balance_control() argument
3088 struct btrfs_fs_info *fs_info = bctl->fs_info; in set_balance_control()
3093 fs_info->balance_ctl = bctl; in set_balance_control()
3099 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in unset_balance_control() local
3107 kfree(bctl); in unset_balance_control()
3291 struct btrfs_balance_control *bctl = root->fs_info->balance_ctl; in should_balance_chunk() local
3297 (bctl->flags & BTRFS_BALANCE_TYPE_MASK))) { in should_balance_chunk()
3302 bargs = &bctl->data; in should_balance_chunk()
3304 bargs = &bctl->sys; in should_balance_chunk()
3306 bargs = &bctl->meta; in should_balance_chunk()
3316 chunk_usage_filter(bctl->fs_info, chunk_offset, bargs)) { in should_balance_chunk()
3319 chunk_usage_range_filter(bctl->fs_info, chunk_offset, bargs)) { in should_balance_chunk()
3378 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in __btrfs_balance() local
3397 u64 limit_data = bctl->data.limit; in __btrfs_balance()
3398 u64 limit_meta = bctl->meta.limit; in __btrfs_balance()
3399 u64 limit_sys = bctl->sys.limit; in __btrfs_balance()
3440 memset(&bctl->stat, 0, sizeof(bctl->stat)); in __btrfs_balance()
3448 bctl->data.limit = limit_data; in __btrfs_balance()
3449 bctl->meta.limit = limit_meta; in __btrfs_balance()
3450 bctl->sys.limit = limit_sys; in __btrfs_balance()
3499 bctl->stat.considered++; in __btrfs_balance()
3515 bctl->stat.expected++; in __btrfs_balance()
3533 count_data < bctl->data.limit_min) in __btrfs_balance()
3535 count_meta < bctl->meta.limit_min) in __btrfs_balance()
3537 count_sys < bctl->sys.limit_min)) { in __btrfs_balance()
3569 bctl->stat.completed++; in __btrfs_balance()
3651 int btrfs_balance(struct btrfs_balance_control *bctl, in btrfs_balance() argument
3654 struct btrfs_fs_info *fs_info = bctl->fs_info; in btrfs_balance()
3677 if (mixed && (bctl->flags & allowed)) { in btrfs_balance()
3678 if (!(bctl->flags & BTRFS_BALANCE_DATA) || in btrfs_balance()
3679 !(bctl->flags & BTRFS_BALANCE_METADATA) || in btrfs_balance()
3680 memcmp(&bctl->data, &bctl->meta, sizeof(bctl->data))) { in btrfs_balance()
3705 if (validate_convert_profile(&bctl->data, allowed)) { in btrfs_balance()
3708 bctl->data.target); in btrfs_balance()
3712 if (validate_convert_profile(&bctl->meta, allowed)) { in btrfs_balance()
3715 bctl->meta.target); in btrfs_balance()
3719 if (validate_convert_profile(&bctl->sys, allowed)) { in btrfs_balance()
3722 bctl->sys.target); in btrfs_balance()
3728 if (!mixed && (bctl->data.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3729 (bctl->data.target & BTRFS_BLOCK_GROUP_DUP)) { in btrfs_balance()
3743 if (((bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3745 !(bctl->sys.target & allowed)) || in btrfs_balance()
3746 ((bctl->meta.flags & BTRFS_BALANCE_ARGS_CONVERT) && in btrfs_balance()
3748 !(bctl->meta.target & allowed))) { in btrfs_balance()
3749 if (bctl->flags & BTRFS_BALANCE_FORCE) { in btrfs_balance()
3760 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) { in btrfs_balance()
3764 bctl->sys.target)); in btrfs_balance()
3767 ret = insert_balance_item(fs_info->tree_root, bctl); in btrfs_balance()
3771 if (!(bctl->flags & BTRFS_BALANCE_RESUME)) { in btrfs_balance()
3773 set_balance_control(bctl); in btrfs_balance()
3777 update_balance_args(bctl); in btrfs_balance()
3789 if (bctl->sys.flags & BTRFS_BALANCE_ARGS_CONVERT) { in btrfs_balance()
3808 if (bctl->flags & BTRFS_BALANCE_RESUME) in btrfs_balance()
3811 kfree(bctl); in btrfs_balance()
3858 struct btrfs_balance_control *bctl; in btrfs_recover_balance() local
3882 bctl = kzalloc(sizeof(*bctl), GFP_NOFS); in btrfs_recover_balance()
3883 if (!bctl) { in btrfs_recover_balance()
3891 bctl->fs_info = fs_info; in btrfs_recover_balance()
3892 bctl->flags = btrfs_balance_flags(leaf, item); in btrfs_recover_balance()
3893 bctl->flags |= BTRFS_BALANCE_RESUME; in btrfs_recover_balance()
3896 btrfs_disk_balance_args_to_cpu(&bctl->data, &disk_bargs); in btrfs_recover_balance()
3898 btrfs_disk_balance_args_to_cpu(&bctl->meta, &disk_bargs); in btrfs_recover_balance()
3900 btrfs_disk_balance_args_to_cpu(&bctl->sys, &disk_bargs); in btrfs_recover_balance()
3907 set_balance_control(bctl); in btrfs_recover_balance()