@@ -202,4 +202,6 @@ btrfs_block_group_cache_done(struct btrfs_block_group_cache *cache)
int __btrfs_inc_block_group_ro(struct btrfs_block_group_cache *cache,
int force);
+u64 btrfs_get_restripe_target(struct btrfs_fs_info *fs_info, u64 flags);
+
#endif /* BTRFS_BLOCK_GROUP_H */
@@ -3048,7 +3048,7 @@ int btrfs_extent_readonly(struct btrfs_fs_info *fs_info, u64 bytenr)
*
* should be called with balance_lock held
*/
-static u64 get_restripe_target(struct btrfs_fs_info *fs_info, u64 flags)
+u64 btrfs_get_restripe_target(struct btrfs_fs_info *fs_info, u64 flags)
{
struct btrfs_balance_control *bctl = fs_info->balance_ctl;
u64 target = 0;
@@ -3089,7 +3089,7 @@ static u64 btrfs_reduce_alloc_profile(struct btrfs_fs_info *fs_info, u64 flags)
* try to reduce to the target profile
*/
spin_lock(&fs_info->balance_lock);
- target = get_restripe_target(fs_info, flags);
+ target = btrfs_get_restripe_target(fs_info, flags);
if (target) {
/* pick target profile only if it's already available */
if ((flags & target) & BTRFS_EXTENDED_PROFILE_MASK) {
@@ -6533,7 +6533,7 @@ static u64 update_block_group_flags(struct btrfs_fs_info *fs_info, u64 flags)
* if restripe for this chunk_type is on pick target profile and
* return, otherwise do the usual balance
*/
- stripped = get_restripe_target(fs_info, flags);
+ stripped = btrfs_get_restripe_target(fs_info, flags);
if (stripped)
return extended_to_chunk(stripped);
@@ -6839,7 +6839,7 @@ int btrfs_can_relocate(struct btrfs_fs_info *fs_info, u64 bytenr)
* 3: raid0
* 4: single
*/
- target = get_restripe_target(fs_info, block_group->flags);
+ target = btrfs_get_restripe_target(fs_info, block_group->flags);
if (target) {
index = btrfs_bg_flags_to_raid_index(extended_to_chunk(target));
} else {
This gets used by a few different logical chunks of the block group code, export it while we move things around. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- fs/btrfs/block-group.h | 2 ++ fs/btrfs/extent-tree.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-)