summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2019-10-04 01:40:58 +0200
committerDavid Sterba <dsterba@suse.com>2019-11-18 12:46:57 +0100
commit975db48330c492a84d8b29b10ae55a30a03dfe0f (patch)
tree8244f6535e83feb6068a7f895e8e396bfd8f4ac9
parentbe951045312d963ffeacd6a566a0de87e4784af1 (diff)
downloadlinux-975db48330c492a84d8b29b10ae55a30a03dfe0f.tar.bz2
btrfs: compression: let workspace manager init take only the type
With the access to the workspace structures, we can look it up together with the compression ops inside the workspace manager init helper. Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/compression.c7
-rw-r--r--fs/btrfs/compression.h3
-rw-r--r--fs/btrfs/lzo.c2
-rw-r--r--fs/btrfs/zlib.c2
4 files changed, 7 insertions, 7 deletions
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index e650125b1d2b..6adc7f6857d7 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -862,7 +862,7 @@ static struct workspace_manager heuristic_wsm;
static void heuristic_init_workspace_manager(void)
{
- btrfs_init_workspace_manager(&heuristic_wsm, &btrfs_heuristic_compress);
+ btrfs_init_workspace_manager(BTRFS_COMPRESS_NONE);
}
static void heuristic_cleanup_workspace_manager(void)
@@ -937,9 +937,10 @@ static const struct btrfs_compress_op * const btrfs_compress_op[] = {
&btrfs_zstd_compress,
};
-void btrfs_init_workspace_manager(struct workspace_manager *wsm,
- const struct btrfs_compress_op *ops)
+void btrfs_init_workspace_manager(int type)
{
+ const struct btrfs_compress_op *ops = btrfs_compress_op[type];
+ struct workspace_manager *wsm = ops->workspace_manager;
struct list_head *workspace;
wsm->ops = ops;
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index 7091eae063e5..10f82e791769 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -120,8 +120,7 @@ struct workspace_manager {
wait_queue_head_t ws_wait;
};
-void btrfs_init_workspace_manager(struct workspace_manager *wsm,
- const struct btrfs_compress_op *ops);
+void btrfs_init_workspace_manager(int type);
struct list_head *btrfs_get_workspace(struct workspace_manager *wsm,
unsigned int level);
void btrfs_put_workspace(struct workspace_manager *wsm, struct list_head *ws);
diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c
index aff105cc80e7..5b8470041bf6 100644
--- a/fs/btrfs/lzo.c
+++ b/fs/btrfs/lzo.c
@@ -65,7 +65,7 @@ static struct workspace_manager wsm;
static void lzo_init_workspace_manager(void)
{
- btrfs_init_workspace_manager(&wsm, &btrfs_lzo_compress);
+ btrfs_init_workspace_manager(BTRFS_COMPRESS_LZO);
}
static void lzo_cleanup_workspace_manager(void)
diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c
index a5e8f0207473..be964128dba3 100644
--- a/fs/btrfs/zlib.c
+++ b/fs/btrfs/zlib.c
@@ -31,7 +31,7 @@ static struct workspace_manager wsm;
static void zlib_init_workspace_manager(void)
{
- btrfs_init_workspace_manager(&wsm, &btrfs_zlib_compress);
+ btrfs_init_workspace_manager(BTRFS_COMPRESS_ZLIB);
}
static void zlib_cleanup_workspace_manager(void)