Commit b2423496 authored by Dennis Zhou's avatar Dennis Zhou Committed by David Sterba

btrfs: zstd: remove indirect calls for local functions

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: default avatarDennis Zhou <dennis@kernel.org>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 6c3abeda
...@@ -90,6 +90,9 @@ static inline struct workspace *list_to_workspace(struct list_head *list) ...@@ -90,6 +90,9 @@ static inline struct workspace *list_to_workspace(struct list_head *list)
return container_of(list, struct workspace, 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 * zstd_reclaim_timer_fn - reclaim timer
* @t: timer * @t: timer
...@@ -124,7 +127,7 @@ static void zstd_reclaim_timer_fn(struct timer_list *timer) ...@@ -124,7 +127,7 @@ static void zstd_reclaim_timer_fn(struct timer_list *timer)
level = victim->level; level = victim->level;
list_del(&victim->lru_list); list_del(&victim->lru_list);
list_del(&victim->list); list_del(&victim->list);
wsm.ops->free_workspace(&victim->list); zstd_free_workspace(&victim->list);
if (list_empty(&wsm.idle_ws[level - 1])) if (list_empty(&wsm.idle_ws[level - 1]))
clear_bit(level - 1, &wsm.active_map); clear_bit(level - 1, &wsm.active_map);
...@@ -180,7 +183,7 @@ static void zstd_init_workspace_manager(void) ...@@ -180,7 +183,7 @@ static void zstd_init_workspace_manager(void)
for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++) for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++)
INIT_LIST_HEAD(&wsm.idle_ws[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)) { if (IS_ERR(ws)) {
pr_warn( pr_warn(
"BTRFS: cannot preallocate zstd compression workspace\n"); "BTRFS: cannot preallocate zstd compression workspace\n");
...@@ -202,7 +205,7 @@ static void zstd_cleanup_workspace_manager(void) ...@@ -202,7 +205,7 @@ static void zstd_cleanup_workspace_manager(void)
struct workspace, list); struct workspace, list);
list_del(&workspace->list); list_del(&workspace->list);
list_del(&workspace->lru_list); list_del(&workspace->lru_list);
wsm.ops->free_workspace(&workspace->list); zstd_free_workspace(&workspace->list);
} }
} }
spin_unlock(&wsm.lock); spin_unlock(&wsm.lock);
...@@ -272,7 +275,7 @@ static struct list_head *zstd_get_workspace(unsigned int level) ...@@ -272,7 +275,7 @@ static struct list_head *zstd_get_workspace(unsigned int level)
return ws; return ws;
nofs_flag = memalloc_nofs_save(); nofs_flag = memalloc_nofs_save();
ws = wsm.ops->alloc_workspace(level); ws = zstd_alloc_workspace(level);
memalloc_nofs_restore(nofs_flag); memalloc_nofs_restore(nofs_flag);
if (IS_ERR(ws)) { if (IS_ERR(ws)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment