[PATCH v3 0/4] erofs-utils: implement the FULLDATA rebuild mode
Lucas Karpinski <[email protected]>
| Newsgroups | org.ozlabs.lists.linux-erofs |
|---|---|
| Message-ID | <[email protected]> |
Currently, erofs-utils supports backing blobs for multi-image setups. This implements the FULLDATA import which allows for the merging of multiple source images into a single self-contained erofs image. To optimize the rebuild process, erofs_io_xcopy() is used to leverage the copy_file_range(2) if available. This bypasses userspace buffering and enables kernel side data transfers. Verification: Built same image with default rebuild and rebuild with FULLDATA. Then ran F-i-f/tdiff comparing the two. changes in v3: - adhere to uniaddress semantics. - take advantage of existing infrastructure which allows us to drop a significant amount of complexity + code. changes in v2: - reworked erofs_rebuild_load_trees_full into erofs_mkfs_rebuild_load_trees. - removed --merge option (use --clean=data instead). - updated man. Signed-off-by: Lucas Karpinski <[email protected]> --- Lucas Karpinski (4): erofs-utils: lib: remove redundant if check erofs-utils: lib: add helper function erofs_uuid_unparse_as_tag erofs-utils: mfks: add rebuild FULLDATA for combined EROFS images erofs-utils: manpages: update to reflect fulldata support include/erofs/internal.h | 3 +++ lib/inode.c | 39 ++++++++++++++++++++------- lib/liberofs_uuid.h | 1 + lib/rebuild.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/uuid_unparse.c | 16 ++++++++++- man/mkfs.erofs.1 | 7 ++++- mkfs/main.c | 16 ++++------- 7 files changed, 130 insertions(+), 22 deletions(-) --- base-commit: 58c3351d5b4b0fc5e4a05d2200c1cf9f85902899 change-id: 20260220-merge-fs-e6231a3a3a1c Best regards, -- Lucas Karpinski <[email protected]>