[PATCH] erofs-utils: mkfs: fix `-Efragments` performance regression

Gao Xiang hsiangkao at linux.alibaba.com
Wed Feb 18 23:13:39 AEDT 2026


Fixes: c75cfaf6956d ("erofs-utils: mkfs: Turn off deduplication under chunk mode with '-E^dedupe'")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 lib/compress.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/compress.c b/lib/compress.c
index 995bc602b145..4a0d890ae87d 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -634,7 +634,7 @@ retry_aligned:
 			may_packing = false;
 			e->length = min_t(u32, e->length, ctx->pclustersize);
 nocompression:
-			if (params->dedupe != EROFS_DEDUPE_FORCE_OFF)
+			if (params->dedupe == EROFS_DEDUPE_FORCE_ON)
 				ret = write_uncompressed_block(ctx, len, dst);
 			else
 				ret = write_uncompressed_extents(ctx, len,
@@ -1382,7 +1382,7 @@ int erofs_commit_compressed_file(struct z_erofs_compress_ictx *ictx,
 
 	if (ptotal)
 		(void)erofs_bh_balloon(bh, ptotal);
-	else if (!params->fragments && params->dedupe == EROFS_DEDUPE_FORCE_OFF)
+	else if (!params->fragments && params->dedupe != EROFS_DEDUPE_FORCE_ON)
 		DBG_BUGON(!inode->idata_size);
 
 	erofs_info("compressed %s (%llu bytes) into %llu bytes",
@@ -1887,7 +1887,7 @@ void *erofs_prepare_compressed_file(struct erofs_importer *im,
 			params->max_compressed_extent_size;
 		ictx->data_unaligned = false;
 	}
-	if (params->fragments && params->dedupe == EROFS_DEDUPE_FORCE_OFF &&
+	if (params->fragments && params->dedupe != EROFS_DEDUPE_FORCE_ON &&
 	    !ictx->data_unaligned)
 		inode->z_advise |= Z_EROFS_ADVISE_INTERLACED_PCLUSTER;
 
-- 
2.43.5



More information about the Linux-erofs mailing list