[PATCH 1/3] erofs-utils: mkfs: update compressor status

Gao Xiang hsiangkao at linux.alibaba.com
Wed Feb 18 17:42:50 AEDT 2026


- Promote DEFLATE compressors from EXPERIMENTAL status;

- Recommend using `-E48bit` with Zstandard compression since it doesn't
  support native fixed-size output compression (this feature has been
  requested for many years), thus the traditional unaligned compression
  has to be used. Note that further build-time optimizations together
  with `-E48bit,fragments` for Zstandard are still pending; it will be
  addressed in the next versions.

Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 lib/compressor_deflate.c    | 8 --------
 lib/compressor_libdeflate.c | 3 ---
 lib/compressor_libzstd.c    | 3 +--
 3 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/lib/compressor_deflate.c b/lib/compressor_deflate.c
index 704a8bbd8548..f567d2c731af 100644
--- a/lib/compressor_deflate.c
+++ b/lib/compressor_deflate.c
@@ -37,8 +37,6 @@ static int compressor_deflate_exit(struct erofs_compress *c)
 
 static int compressor_deflate_init(struct erofs_compress *c)
 {
-	static erofs_atomic_bool_t __warnonce;
-
 	if (c->private_data) {
 		kite_deflate_end(c->private_data);
 		c->private_data = NULL;
@@ -46,12 +44,6 @@ static int compressor_deflate_init(struct erofs_compress *c)
 	c->private_data = kite_deflate_init(c->compression_level, c->dict_size);
 	if (IS_ERR_VALUE(c->private_data))
 		return PTR_ERR(c->private_data);
-
-	if (!erofs_atomic_test_and_set(&__warnonce)) {
-		erofs_warn("EXPERIMENTAL DEFLATE algorithm in use. Use at your own risk!");
-		erofs_warn("*Carefully* check filesystem data correctness to avoid corruption!");
-		erofs_warn("Please send a report to <linux-erofs at lists.ozlabs.org> if something is wrong.");
-	}
 	return 0;
 }
 
diff --git a/lib/compressor_libdeflate.c b/lib/compressor_libdeflate.c
index 186da87c9b95..18f5f7b4048c 100644
--- a/lib/compressor_libdeflate.c
+++ b/lib/compressor_libdeflate.c
@@ -120,7 +120,6 @@ static int compressor_libdeflate_exit(struct erofs_compress *c)
 
 static int compressor_libdeflate_init(struct erofs_compress *c)
 {
-	static erofs_atomic_bool_t __warnonce;
 	struct erofs_libdeflate_context *ctx;
 
 	DBG_BUGON(c->private_data);
@@ -133,8 +132,6 @@ static int compressor_libdeflate_init(struct erofs_compress *c)
 		return -ENOMEM;
 	}
 	c->private_data = ctx;
-	if (!erofs_atomic_test_and_set(&__warnonce))
-		erofs_warn("EXPERIMENTAL libdeflate compressor in use. Use at your own risk!");
 	return 0;
 }
 
diff --git a/lib/compressor_libzstd.c b/lib/compressor_libzstd.c
index feef409c23d0..c47507716528 100644
--- a/lib/compressor_libzstd.c
+++ b/lib/compressor_libzstd.c
@@ -175,8 +175,7 @@ static int compressor_libzstd_init(struct erofs_compress *c)
 
 	if (!erofs_atomic_test_and_set(&__warnonce)) {
 		erofs_warn("EXPERIMENTAL libzstd compressor in use. Note that `fitblk` isn't supported by upstream zstd for now.");
-		erofs_warn("Therefore it will takes more time in order to get the optimal result.");
-		erofs_info("You could clarify further needs in zstd repository <https://github.com/facebook/zstd/issues> for reference too.");
+		erofs_warn("If unaligned compression isn't used (without -E48bit), it will take more time in order to get the optimal result.");
 	}
 	return 0;
 out_err:
-- 
2.43.5



More information about the Linux-erofs mailing list