[PATCH v3 0/3] erofs-utils: introduce fuse implementation
Gao Xiang
hsiangkao at aol.com
Fri Nov 27 22:46:14 AEDT 2020
From: Gao Xiang <hsiangkao at redhat.com>
changes since v2:
- erofs_dbg() -> erofs_dump() in signal_handle_sigsegv() (Guifu);
- get rid of unnecessary new lines (Guifu).
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
Cc: Li Guifu <blucerlee at gmail.com>
Cc: Huang Jianan <huangjianan at oppo.com>
Cc: Guo Weichao <guoweichao at 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 | 92 +++++++-
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, 1594 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
More information about the Linux-erofs
mailing list