[PATCH v4 0/2] erofs-utils: implement the FULLDATA rebuild mode

Lucas Karpinski lkarpinski at nvidia.com
Thu Apr 16 00:08:08 AEST 2026


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 v4:
- fixed inline inodes.
- removed unneeded header.
- spelling mistakes & spurious new line.

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 <lkarpinski at nvidia.com>
---
Lucas Karpinski (2):
      erofs-utils: mkfs: add rebuild FULLDATA for combined EROFS images
      erofs-utils: manpage: update to reflect fulldata support

 include/erofs/internal.h |  3 +++
 lib/inode.c              | 38 ++++++++++++++++++++++-----
 lib/rebuild.c            | 68 ++++++++++++++++++++++++++++++++++++++++++++++++
 man/mkfs.erofs.1         |  7 ++++-
 mkfs/main.c              |  7 +++--
 5 files changed, 114 insertions(+), 9 deletions(-)
---
base-commit: fa1aa7d3c22a3ee26956cea24156735f96ee8f9c
change-id: 20260220-merge-fs-e6231a3a3a1c

Best regards,
-- 
Lucas Karpinski <lkarpinski at nvidia.com>


More information about the Linux-erofs mailing list