OSDN Git Service

btrfs: compression: let workspace manager init take only the type
authorDavid Sterba <dsterba@suse.com>
Thu, 3 Oct 2019 23:40:58 +0000 (01:40 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 18 Nov 2019 11:46:57 +0000 (12:46 +0100)
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>
fs/btrfs/compression.c
fs/btrfs/compression.h
fs/btrfs/lzo.c
fs/btrfs/zlib.c

index e650125..6adc7f6 100644 (file)
@@ -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;
index 7091eae..10f82e7 100644 (file)
@@ -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);
index aff105c..5b84700 100644 (file)
@@ -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)
index a5e8f02..be96412 100644 (file)
@@ -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)