linux/fs/erofs
Gao Xiang 8f89926290 erofs: get compression algorithms directly on mapping
Currently, z_erofs_map_blocks_iter() returns whether extents are
compressed or not, and the decompression frontend gets the specific
algorithms then.

It works but not quite well in many aspests, for example:
 - The decompression frontend has to deal with whether extents are
   compressed or not again and lookup the algorithms if compressed.
   It's duplicated and too detailed about the on-disk mapping.

 - A new secondary compression head will be introduced later so that
   each file can have 2 compression algorithms at most for different
   type of data. It could increase the complexity of the decompression
   frontend if still handled in this way;

 - A new readmore decompression strategy will be introduced to get
   better performance for much bigger pcluster and lzma, which needs
   the specific algorithm in advance as well.

Let's look up compression algorithms in z_erofs_map_blocks_iter()
directly instead.

Link: https://lore.kernel.org/r/20211008200839.24541-2-xiang@kernel.org
Reviewed-by: Chao Yu <chao@kernel.org>
Reviewed-by: Yue Hu <huyue2@yulong.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
2021-10-18 00:15:55 +08:00
..
compress.h erofs: get compression algorithms directly on mapping 2021-10-18 00:15:55 +08:00
data.c erofs: add multiple device support 2021-10-18 00:13:30 +08:00
decompressor.c erofs: remove the fast path of per-CPU buffer decompression 2021-10-15 00:14:26 +08:00
dir.c erofs: clean up file headers & footers 2021-06-08 00:41:24 +08:00
erofs_fs.h erofs: add multiple device support 2021-10-18 00:13:30 +08:00
inode.c erofs: decouple basic mount options from fs_context 2021-10-17 23:57:15 +08:00
internal.h erofs: get compression algorithms directly on mapping 2021-10-18 00:15:55 +08:00
Kconfig erofs: add multiple device support 2021-10-18 00:13:30 +08:00
Makefile erofs: introduce multipage per-CPU buffers 2021-04-10 03:19:59 +08:00
namei.c erofs: add fiemap support with iomap 2021-08-19 00:13:43 +08:00
pcpubuf.c erofs: introduce multipage per-CPU buffers 2021-04-10 03:19:59 +08:00
super.c erofs: add multiple device support 2021-10-18 00:13:30 +08:00
tagptr.h erofs: clean up file headers & footers 2021-06-08 00:41:24 +08:00
utils.c erofs: clean up file headers & footers 2021-06-08 00:41:24 +08:00
xattr.c erofs: decouple basic mount options from fs_context 2021-10-17 23:57:15 +08:00
xattr.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
zdata.c erofs: get compression algorithms directly on mapping 2021-10-18 00:15:55 +08:00
zdata.h erofs: clean up file headers & footers 2021-06-08 00:41:24 +08:00
zmap.c erofs: get compression algorithms directly on mapping 2021-10-18 00:15:55 +08:00
zpvec.h erofs: clean up file headers & footers 2021-06-08 00:41:24 +08:00