diff options
author | Gao Xiang <gaoxiang25@huawei.com> | 2019-10-08 14:56:15 +0200 |
---|---|---|
committer | Gao Xiang <gaoxiang25@huawei.com> | 2019-11-24 04:02:41 +0100 |
commit | a4b1fab121ec3235e6c5f3543ae1937426bd4eb4 (patch) | |
tree | 8e63d0bed2a08966343b520ab7d00ff0b4313f68 /fs/erofs/zdata.h | |
parent | erofs: get rid of __stagingpage_alloc helper (diff) | |
download | linux-a4b1fab121ec3235e6c5f3543ae1937426bd4eb4.tar.xz linux-a4b1fab121ec3235e6c5f3543ae1937426bd4eb4.zip |
erofs: clean up decompress queue stuffs
Previously, both z_erofs_unzip_io and z_erofs_unzip_io_sb
record decompress queues for backend to use.
The only difference is that z_erofs_unzip_io is used for
on-stack sync decompression so that it doesn't have a super
block field (since the caller can pass it in its context),
but it increases complexity with only a pointer saving.
Rename z_erofs_unzip_io to z_erofs_decompressqueue with
a fixed super_block member and kill the other entirely,
and it can fallback to sync decompression if memory
allocation failure.
Link: https://lore.kernel.org/r/20191008125616.183715-4-gaoxiang25@huawei.com
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Diffstat (limited to 'fs/erofs/zdata.h')
-rw-r--r-- | fs/erofs/zdata.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/erofs/zdata.h b/fs/erofs/zdata.h index faf950189bd7..7824f5563a55 100644 --- a/fs/erofs/zdata.h +++ b/fs/erofs/zdata.h @@ -84,7 +84,8 @@ struct z_erofs_pcluster { #define Z_EROFS_WORKGROUP_SIZE sizeof(struct z_erofs_pcluster) -struct z_erofs_unzip_io { +struct z_erofs_decompressqueue { + struct super_block *sb; atomic_t pending_bios; z_erofs_next_pcluster_t head; @@ -94,11 +95,6 @@ struct z_erofs_unzip_io { } u; }; -struct z_erofs_unzip_io_sb { - struct z_erofs_unzip_io io; - struct super_block *sb; -}; - #define MNGD_MAPPING(sbi) ((sbi)->managed_cache->i_mapping) static inline bool erofs_page_is_managed(const struct erofs_sb_info *sbi, struct page *page) |