From: Gao Xiang <hsiang...@redhat.com> changes since v1: - fix off-by-one error of namebuf in erofs_fill_dentries(); - drop unused "struct erofs_super_block super;" in lib/super.c; - fix clang/32-bit build errors founded by travis CI.
Hi all, I've finished cleaning up erofsfuse - a fuse implementation of erofs just now. It's now considered as multithread safe since it's currently stateless by killing useless caches and using high-level libfuse APIs(also libfuse itself is MT-safe). Therefore, I don't need to release another liberofs MT-safe version for now as well. As I said eariler, the main usage of erofsfuse is to support handling erofs images on older kernels without kernel modification, which was requested by real vendors (thanks to folks from OPPO to pick it up). And to summarize the benefits of erofsfuse, I think it would be: - erofs images can be supported on various platforms; - an independent unpack tool can be developed based on this; - new on-disk feature can be iterated, verified effectively. erofsfuse will be included in the upcoming erofs-utils v1.2, but disabled by default for now. Since it still needs sometime to stablize and also notice LZ4_decompress_safe_partial() was broken in lz4-1.9.2, which just fixed in lz4-1.9.3 days ago [1]. BTW, recently some other people get in touch with me in private to ask for some latest micro-benchmark among compression fses, so I spared some extra time on this as well, see: https://github.com/erofs/erofs-openbenchmark/wiki/linux_5.10_rc4-compression-FSes-benchmark I might test on hikey960 board as well yet need to seek more extra time but I think no much difference on relative relationship (but yeah, CPU-storage combination is vital for seqread uplimit). Thanks, Gao Xiang [1] https://github.com/lz4/lz4/issues/783 Cc: Li Guifu <blucer...@gmail.com> Cc: Huang Jianan <huangjia...@oppo.com> Cc: Guo Weichao <guoweic...@oppo.com> Huang Jianan (2): erofs-utils: fuse: support symlink & special inode erofs-utils: fuse: add compressed file support Li Guifu (1): erofs-utils: introduce fuse implementation Makefile.am | 4 + configure.ac | 22 +- fuse/Makefile.am | 10 + fuse/dir.c | 103 +++++++++ fuse/main.c | 240 +++++++++++++++++++++ include/erofs/decompress.h | 35 ++++ include/erofs/defs.h | 5 + include/erofs/internal.h | 94 ++++++++- include/erofs/io.h | 1 + include/erofs/trace.h | 14 ++ include/erofs_fs.h | 4 + lib/Makefile.am | 4 +- lib/data.c | 204 ++++++++++++++++++ lib/decompress.c | 87 ++++++++ lib/io.c | 16 ++ lib/namei.c | 264 +++++++++++++++++++++++ lib/super.c | 78 +++++++ lib/zmap.c | 415 +++++++++++++++++++++++++++++++++++++ 18 files changed, 1596 insertions(+), 4 deletions(-) create mode 100644 fuse/Makefile.am create mode 100644 fuse/dir.c create mode 100644 fuse/main.c create mode 100644 include/erofs/decompress.h create mode 100644 include/erofs/trace.h create mode 100644 lib/data.c create mode 100644 lib/decompress.c create mode 100644 lib/namei.c create mode 100644 lib/super.c create mode 100644 lib/zmap.c -- 2.24.0