btrfs: cleanup btrfs_balance profile validity checks
PATCH v2 1/1 btrfs: cleanup btrfs_balance profile validity checks
Improve readability by generalizing the profile validity checks.
Signed-off-by Alexandru Moise <[email protected]>
---
v2: Followed Dave's suggestion and renamed function to validate_convert_profile instead of balance_relocate_invalid
fs/btrfs/volumes.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-)
fs/btrfs/volumes.c +12 -9
@@ -3466,6 +3466,15 @@ static void __cancel_balance(struct btrfs_fs_info *fs_info)atomic_set (&fs_info->mutually_exclusive_operation_running,0 ); } +/* Non-zero return value signifies invalidity */ +static inline int validate_convert_profile (struct btrfs_balance_args *bctl_arg, +u64 allowed) +{ +return ((bctl_arg->flags &BTRFS_BALANCE_ARGS_CONVERT ) && + (!alloc_profile_is_valid (bctl_arg->target,1 ) || + (bctl_arg->target & ~allowed))); +} +/* * Should be called with both balance and volume mutexes held */
@@ -3523,27 +3532,21 @@ int btrfs_balance(struct btrfs_balance_control *bctl,if (num_devices >3 ) allowed |= (BTRFS_BLOCK_GROUP_RAID10 |BTRFS_BLOCK_GROUP_RAID6 ); -if ((bctl->data.flags &BTRFS_BALANCE_ARGS_CONVERT ) && - (!alloc_profile_is_valid (bctl->data.target,1 ) || - (bctl->data.target & ~allowed))) { +if (validate_convert_profile (&bctl->data, allowed)) {btrfs_err (fs_info,"unable to start balance with target " "data profile %llu" , bctl->data.target); ret = -EINVAL ; goto out; } -if ((bctl->meta.flags &BTRFS_BALANCE_ARGS_CONVERT ) && - (!alloc_profile_is_valid (bctl->meta.target,1 ) || - (bctl->meta.target & ~allowed))) { +if (validate_convert_profile (&bctl->meta, allowed)) {btrfs_err (fs_info,"unable to start balance with target metadata profile %llu" , bctl->meta.target); ret = -EINVAL ; goto out; } -if ((bctl->sys.flags &BTRFS_BALANCE_ARGS_CONVERT ) && - (!alloc_profile_is_valid (bctl->sys.target,1 ) || - (bctl->sys.target & ~allowed))) { +if (validate_convert_profile (&bctl->sys, allowed)) {btrfs_err (fs_info,"unable to start balance with target system profile %llu" , bctl->sys.target);
Signature · 1 line
2.5.3
Quoted 3 lines · Alexandru Moise
Improve readability by generalizing the profile validity checks.
Signed-off-by Alexandru Moise <[email protected]>
Reviewed-by David Sterba <[email protected]>