On 2026/3/3 4:01, Lucas Karpinski wrote:
Finish enabling merge functionality for rebuild fulldata mode

Signed-off-by: Lucas Karpinski <[email protected]>
---
  mkfs/main.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/mkfs/main.c b/mkfs/main.c
index 124a024..4c96e9d 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -105,6 +105,7 @@ static struct option long_options[] = {
        {"MZ", optional_argument, NULL, 537},
        {"xattr-prefix", required_argument, NULL, 538},
        {"xattr-inode-digest", required_argument, NULL, 539},
+       {"merge", no_argument, NULL, 540},
        {0, 0, 0, 0},
  };
@@ -254,6 +255,8 @@ static void usage(int argc, char **argv)
  #ifdef HAVE_ZLIB
                " --gzinfo[=X]           generate AWS SOCI-compatible zinfo in order 
to support random gzip access\n"
  #endif
+               " --merge                merge multiple EROFS images into one\n"
+               "                        Usage: mkfs.erofs --merge OUTPUT INPUT1 
INPUT2 ...\n"

Hi Karpinski,


I would suggest using existing `--clean=data` option rather than introducing `--merge`

for this semantic, and could you help update man/mkfs.erofs.1 as well?


Thanks,

Yifan

                " --vmdk-desc=X          generate a VMDK descriptor file to merge 
sub-filesystems\n"
  #ifdef EROFS_MT_ENABLED
                " --workers=#            set the number of worker threads to # 
(default: %u)\n"
@@ -1093,13 +1096,15 @@ static int mkfs_parse_sources(int argc, char *argv[], 
int optind)
                }
                break;
  #endif
+       case EROFS_MKFS_SOURCE_REBUILD:
+               break;
        default:
                erofs_err("unexpected source_mode: %d", source_mode);
                return -EINVAL;
        }
if (source_mode == EROFS_MKFS_SOURCE_REBUILD) {
-               char *srcpath = cfg.c_src_path;
+               char *srcpath = cfg.c_src_path ? cfg.c_src_path : 
argv[optind++];
                struct erofs_sb_info *src;
do {
@@ -1550,6 +1555,10 @@ static int mkfs_parse_options_cfg(struct 
erofs_importer_params *params,
                                return err;
                        }
                        break;
+               case 540:
+                       source_mode = EROFS_MKFS_SOURCE_REBUILD;
+                       dataimport_mode = EROFS_MKFS_DATA_IMPORT_FULLDATA;
+                       break;
                case 'V':
                        version();
                        exit(0);


Reply via email to