OSDN Git Service

btrfs: zstd: remove indirect calls for local functions
authorDennis Zhou <dennis@kernel.org>
Wed, 27 Feb 2019 21:21:28 +0000 (16:21 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 29 Apr 2019 17:02:18 +0000 (19:02 +0200)
While calling functions inside zstd, we don't need to use the
indirection provided by the workspace_manager. Forward declarations are
added to maintain the function order of btrfs_compress_op.

Signed-off-by: Dennis Zhou <dennis@kernel.org>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/zstd.c

index 6b9e29d..a6ff07c 100644 (file)
@@ -90,6 +90,9 @@ static inline struct workspace *list_to_workspace(struct list_head *list)
        return container_of(list, struct workspace, list);
 }
 
+static void zstd_free_workspace(struct list_head *ws);
+static struct list_head *zstd_alloc_workspace(unsigned int level);
+
 /*
  * zstd_reclaim_timer_fn - reclaim timer
  * @t: timer
@@ -124,7 +127,7 @@ static void zstd_reclaim_timer_fn(struct timer_list *timer)
                level = victim->level;
                list_del(&victim->lru_list);
                list_del(&victim->list);
-               wsm.ops->free_workspace(&victim->list);
+               zstd_free_workspace(&victim->list);
 
                if (list_empty(&wsm.idle_ws[level - 1]))
                        clear_bit(level - 1, &wsm.active_map);
@@ -180,7 +183,7 @@ static void zstd_init_workspace_manager(void)
        for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++)
                INIT_LIST_HEAD(&wsm.idle_ws[i]);
 
-       ws = wsm.ops->alloc_workspace(ZSTD_BTRFS_MAX_LEVEL);
+       ws = zstd_alloc_workspace(ZSTD_BTRFS_MAX_LEVEL);
        if (IS_ERR(ws)) {
                pr_warn(
                "BTRFS: cannot preallocate zstd compression workspace\n");
@@ -202,7 +205,7 @@ static void zstd_cleanup_workspace_manager(void)
                                                 struct workspace, list);
                        list_del(&workspace->list);
                        list_del(&workspace->lru_list);
-                       wsm.ops->free_workspace(&workspace->list);
+                       zstd_free_workspace(&workspace->list);
                }
        }
        spin_unlock(&wsm.lock);
@@ -272,7 +275,7 @@ again:
                return ws;
 
        nofs_flag = memalloc_nofs_save();
-       ws = wsm.ops->alloc_workspace(level);
+       ws = zstd_alloc_workspace(level);
        memalloc_nofs_restore(nofs_flag);
 
        if (IS_ERR(ws)) {