We'll need this to move the caching stuff around.

Signed-off-by: Josef Bacik <jo...@toxicpanda.com>
---
 fs/btrfs/ctree.h       |  3 +++
 fs/btrfs/extent-tree.c | 40 +++++++++++++++++++++-------------------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index c4ae6714e3d4..409852f7af9f 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2460,6 +2460,9 @@ static inline u64 btrfs_calc_trunc_metadata_size(struct 
btrfs_fs_info *fs_info,
        return (u64)fs_info->nodesize * BTRFS_MAX_LEVEL * num_items;
 }
 
+int btrfs_add_excluded_extent(struct btrfs_fs_info *fs_info,
+                             u64 start, u64 num_bytes);
+void btrfs_free_excluded_extents(struct btrfs_block_group_cache *cache);
 int btrfs_run_delayed_refs(struct btrfs_trans_handle *trans,
                           unsigned long count);
 void btrfs_cleanup_ref_head_accounting(struct btrfs_fs_info *fs_info,
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 82451a64f8ee..eea5a15802f1 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -99,8 +99,8 @@ static int btrfs_add_block_group_cache(struct btrfs_fs_info 
*info,
        return 0;
 }
 
-static int add_excluded_extent(struct btrfs_fs_info *fs_info,
-                              u64 start, u64 num_bytes)
+int btrfs_add_excluded_extent(struct btrfs_fs_info *fs_info,
+                             u64 start, u64 num_bytes)
 {
        u64 end = start + num_bytes - 1;
        set_extent_bits(&fs_info->freed_extents[0],
@@ -110,7 +110,7 @@ static int add_excluded_extent(struct btrfs_fs_info 
*fs_info,
        return 0;
 }
 
-static void free_excluded_extents(struct btrfs_block_group_cache *cache)
+void btrfs_free_excluded_extents(struct btrfs_block_group_cache *cache)
 {
        struct btrfs_fs_info *fs_info = cache->fs_info;
        u64 start, end;
@@ -135,8 +135,8 @@ static int exclude_super_stripes(struct 
btrfs_block_group_cache *cache)
        if (cache->key.objectid < BTRFS_SUPER_INFO_OFFSET) {
                stripe_len = BTRFS_SUPER_INFO_OFFSET - cache->key.objectid;
                cache->bytes_super += stripe_len;
-               ret = add_excluded_extent(fs_info, cache->key.objectid,
-                                         stripe_len);
+               ret = btrfs_add_excluded_extent(fs_info, cache->key.objectid,
+                                               stripe_len);
                if (ret)
                        return ret;
        }
@@ -169,7 +169,7 @@ static int exclude_super_stripes(struct 
btrfs_block_group_cache *cache)
                        }
 
                        cache->bytes_super += len;
-                       ret = add_excluded_extent(fs_info, start, len);
+                       ret = btrfs_add_excluded_extent(fs_info, start, len);
                        if (ret) {
                                kfree(logical);
                                return ret;
@@ -449,7 +449,7 @@ static noinline void caching_thread(struct btrfs_work *work)
        caching_ctl->progress = (u64)-1;
 
        up_read(&fs_info->commit_root_sem);
-       free_excluded_extents(block_group);
+       btrfs_free_excluded_extents(block_group);
        mutex_unlock(&caching_ctl->mutex);
 
        wake_up(&caching_ctl->wait);
@@ -458,8 +458,8 @@ static noinline void caching_thread(struct btrfs_work *work)
        btrfs_put_block_group(block_group);
 }
 
-static int btrfs_cache_block_group(struct btrfs_block_group_cache *cache,
-                                  int load_cache_only)
+int btrfs_cache_block_group(struct btrfs_block_group_cache *cache,
+                           int load_cache_only)
 {
        DEFINE_WAIT(wait);
        struct btrfs_fs_info *fs_info = cache->fs_info;
@@ -557,7 +557,7 @@ static int btrfs_cache_block_group(struct 
btrfs_block_group_cache *cache,
                wake_up(&caching_ctl->wait);
                if (ret == 1) {
                        put_caching_control(caching_ctl);
-                       free_excluded_extents(cache);
+                       btrfs_free_excluded_extents(cache);
                        return 0;
                }
        } else {
@@ -4165,7 +4165,8 @@ static int __exclude_logged_extent(struct btrfs_fs_info 
*fs_info,
                mutex_lock(&caching_ctl->mutex);
 
                if (start >= caching_ctl->progress) {
-                       ret = add_excluded_extent(fs_info, start, num_bytes);
+                       ret = btrfs_add_excluded_extent(fs_info, start,
+                                                       num_bytes);
                } else if (start + num_bytes <= caching_ctl->progress) {
                        ret = btrfs_remove_free_space(block_group,
                                                      start, num_bytes);
@@ -4179,7 +4180,8 @@ static int __exclude_logged_extent(struct btrfs_fs_info 
*fs_info,
                        num_bytes = (start + num_bytes) -
                                caching_ctl->progress;
                        start = caching_ctl->progress;
-                       ret = add_excluded_extent(fs_info, start, num_bytes);
+                       ret = btrfs_add_excluded_extent(fs_info, start,
+                                                       num_bytes);
                }
 out_lock:
                mutex_unlock(&caching_ctl->mutex);
@@ -7637,7 +7639,7 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info)
                 */
                if (block_group->cached == BTRFS_CACHE_NO ||
                    block_group->cached == BTRFS_CACHE_ERROR)
-                       free_excluded_extents(block_group);
+                       btrfs_free_excluded_extents(block_group);
 
                btrfs_remove_free_space_cache(block_group);
                ASSERT(block_group->cached != BTRFS_CACHE_STARTED);
@@ -7939,7 +7941,7 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info)
                         * We may have excluded something, so call this just in
                         * case.
                         */
-                       free_excluded_extents(cache);
+                       btrfs_free_excluded_extents(cache);
                        btrfs_put_block_group(cache);
                        goto error;
                }
@@ -7954,14 +7956,14 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info)
                if (found_key.offset == btrfs_block_group_used(&cache->item)) {
                        cache->last_byte_to_unpin = (u64)-1;
                        cache->cached = BTRFS_CACHE_FINISHED;
-                       free_excluded_extents(cache);
+                       btrfs_free_excluded_extents(cache);
                } else if (btrfs_block_group_used(&cache->item) == 0) {
                        cache->last_byte_to_unpin = (u64)-1;
                        cache->cached = BTRFS_CACHE_FINISHED;
                        add_new_free_space(cache, found_key.objectid,
                                           found_key.objectid +
                                           found_key.offset);
-                       free_excluded_extents(cache);
+                       btrfs_free_excluded_extents(cache);
                }
 
                ret = btrfs_add_block_group_cache(info, cache);
@@ -8087,14 +8089,14 @@ int btrfs_make_block_group(struct btrfs_trans_handle 
*trans, u64 bytes_used,
                 * We may have excluded something, so call this just in
                 * case.
                 */
-               free_excluded_extents(cache);
+               btrfs_free_excluded_extents(cache);
                btrfs_put_block_group(cache);
                return ret;
        }
 
        add_new_free_space(cache, chunk_offset, chunk_offset + size);
 
-       free_excluded_extents(cache);
+       btrfs_free_excluded_extents(cache);
 
 #ifdef CONFIG_BTRFS_DEBUG
        if (btrfs_should_fragment_free_space(cache)) {
@@ -8181,7 +8183,7 @@ int btrfs_remove_block_group(struct btrfs_trans_handle 
*trans,
         * Free the reserved super bytes from this block group before
         * remove it.
         */
-       free_excluded_extents(block_group);
+       btrfs_free_excluded_extents(block_group);
        btrfs_free_ref_tree_range(fs_info, block_group->key.objectid,
                                  block_group->key.offset);
 
-- 
2.14.3

Reply via email to