public inbox for linux-erofs@ozlabs.org
 help / color / mirror / Atom feed
From: Lucas Karpinski <lkarpinski@nvidia.com>
To: linux-erofs@lists.ozlabs.org
Cc: jcalmels@nvidia.com, Lucas Karpinski <lkarpinski@nvidia.com>
Subject: [PATCH v2 0/5] erofs-utils: implement the FULLDATA rebuild mode
Date: Mon,  9 Mar 2026 12:38:16 -0400	[thread overview]
Message-ID: <20260309-merge-fs-v2-0-2dd0ef53db4d@nvidia.com> (raw)

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_copy_file_range() is used to
leverage the copy_file_range(2) if available. This bypasses userspace
buffering and enables kernel side data transfers.

Verification:
1. Created a source directory containing flat inodes, inline inodes,
   symlinks and absolute symlinks. Verified data integrity by comparing
   checksums of files within the mounted image.
2. Built same image with default rebuild and rebuild with FULLDATA. Then
   ran F-i-f/tdiff comparing the two.

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@nvidia.com>
---
Lucas Karpinski (5):
      erofs-utils: lib: pass uniaddr_offset to erofs_rebuild_load_tree
      erofs-utils: lib: add helper function erofs_uuid_unparse_as_tag
      erofs-utils: lib: preserve primarydevice_blocks if already larger
      erofs-utils: mfks: add rebuild FULLDATA for combined EROFS images
      erofs-utils: manpages: update to reflect fulldata support

 lib/cache.c            |   6 +++
 lib/importer.c         |   5 ++-
 lib/liberofs_cache.h   |   1 +
 lib/liberofs_rebuild.h |   7 ++-
 lib/liberofs_uuid.h    |   1 +
 lib/rebuild.c          | 117 +++++++++++++++++++++++++++++++++++++++++++++++--
 lib/uuid_unparse.c     |  16 ++++++-
 man/mkfs.erofs.1       |   7 ++-
 mkfs/main.c            |  53 ++++++++++++++--------
 9 files changed, 185 insertions(+), 28 deletions(-)
---


             reply	other threads:[~2026-03-09 16:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-09 16:38 Lucas Karpinski [this message]
2026-03-09 16:38 ` [PATCH v2 1/5] erofs-utils: lib: pass uniaddr_offset to erofs_rebuild_load_tree Lucas Karpinski
2026-03-09 16:38 ` [PATCH v2 2/5] erofs-utils: lib: add helper function erofs_uuid_unparse_as_tag Lucas Karpinski
2026-03-09 16:38 ` [PATCH v2 3/5] erofs-utils: lib: preserve primarydevice_blocks if already larger Lucas Karpinski
2026-03-09 16:38 ` [PATCH v2 4/5] erofs-utils: mfks: add rebuild FULLDATA for combined EROFS images Lucas Karpinski
2026-03-10 10:24   ` Gao Xiang
2026-03-09 16:38 ` [PATCH v2 5/5] erofs-utils: manpages: update to reflect fulldata support Lucas Karpinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260309-merge-fs-v2-0-2dd0ef53db4d@nvidia.com \
    --to=lkarpinski@nvidia.com \
    --cc=jcalmels@nvidia.com \
    --cc=linux-erofs@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox