[PATCH 5/5] erofs-utils: mkfs: enable experimental rebuild fulldata mode

zhaoyifan (H) zhaoyifan28 at huawei.com
Thu Mar 5 13:37:00 AEDT 2026


On 2026/3/3 4:01, Lucas Karpinski wrote:
> Finish enabling merge functionality for rebuild fulldata mode
>
> Signed-off-by: Lucas Karpinski <lkarpinski at nvidia.com>
> ---
>   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);
>


More information about the Linux-erofs mailing list