In this patchset, we have added two formatting options --meta_fix and --meta_only to extend the ability of EROFS. In the case of using OBS, we can convert the directory tree structure from OBS into the erofs image and implement on-demand loading logic based on this. Since OBS objects are often large, we need to separate the metadata area from the data area, which is the reason we introduce the --meta_fix option. To accelerate the formatting process, we can skip the formatting of the raw data by adding --meta_only option.
A simple usage example is as follows: 1. Build one xattr with OBS key in s3fs. 2. mkfs.erofs --meta_fix --meta_only data.img /mnt/s3fs to format 3. Implement the loading logic in kernel or userspace. Based on the above logic, we can easily expose the directory tree from OBS to users in the form of the EROFS file system and implement on-demand data loading for large OBS objects. Hongbo Li (4): erofs-utils: lib: introduce --meta_fix format option erofs-utils: lib: Implement the main logic for --meta_fix option erofs-utils: lib: add --meta_only format option erofs-utils: lib: remove the compile warning include/erofs/blobraw.h | 29 +++++++++ include/erofs/config.h | 2 + lib/Makefile.am | 3 +- lib/blobraw.c | 129 ++++++++++++++++++++++++++++++++++++++++ lib/decompress.c | 3 + lib/inode.c | 6 ++ mkfs/main.c | 49 +++++++++++++++ 7 files changed, 220 insertions(+), 1 deletion(-) create mode 100755 include/erofs/blobraw.h create mode 100755 lib/blobraw.c -- 2.22.0