summaryrefslogtreecommitdiff
path: root/fs/erofs/compress.h
diff options
context:
space:
mode:
authorGao Xiang <hsiangkao@linux.alibaba.com>2023-10-22 16:09:57 +0300
committerGao Xiang <hsiangkao@linux.alibaba.com>2023-10-31 01:57:19 +0300
commitefb4fb02cef3ab410b603c8f0e1c67f61d55f542 (patch)
treea6d08a3dbf0fd50b573a1fa67cc96dd6802dc624 /fs/erofs/compress.h
parent798eecaea0f0366306cbc76986a83041a7e8669f (diff)
downloadlinux-efb4fb02cef3ab410b603c8f0e1c67f61d55f542.tar.xz
erofs: simplify compression configuration parser
Move erofs_load_compr_cfgs() into decompressor.c as well as introduce a callback instead of a hard-coded switch for each algorithm for simplicity. Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/20231022130957.11398-1-xiang@kernel.org
Diffstat (limited to 'fs/erofs/compress.h')
-rw-r--r--fs/erofs/compress.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/erofs/compress.h b/fs/erofs/compress.h
index 349c3316ae6b..279933e007d2 100644
--- a/fs/erofs/compress.h
+++ b/fs/erofs/compress.h
@@ -21,6 +21,8 @@ struct z_erofs_decompress_req {
};
struct z_erofs_decompressor {
+ int (*config)(struct super_block *sb, struct erofs_super_block *dsb,
+ void *data, int size);
int (*decompress)(struct z_erofs_decompress_req *rq,
struct page **pagepool);
char *name;
@@ -92,6 +94,10 @@ int z_erofs_fixup_insize(struct z_erofs_decompress_req *rq, const char *padbuf,
extern const struct z_erofs_decompressor erofs_decompressors[];
/* prototypes for specific algorithms */
+int z_erofs_load_lzma_config(struct super_block *sb,
+ struct erofs_super_block *dsb, void *data, int size);
+int z_erofs_load_deflate_config(struct super_block *sb,
+ struct erofs_super_block *dsb, void *data, int size);
int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq,
struct page **pagepool);
int z_erofs_deflate_decompress(struct z_erofs_decompress_req *rq,