[PATCH v1 1/2] erofs-utils: Relax the hardchecks on the blocksize

Sandeep Dhavale dhavale at google.com
Thu Aug 31 09:16:05 AEST 2023


As erofs-utils supports different block sizes upto
EROFS_MAX_BLOCK_SIZE, relax the checks so same tools
can be used to create images for platforms where
page size can be greater than 4096.

Signed-off-by: Sandeep Dhavale <dhavale at google.com>
---
 lib/namei.c | 2 --
 mkfs/main.c | 9 +++++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/lib/namei.c b/lib/namei.c
index 2bb1d4c..45dbcd3 100644
--- a/lib/namei.c
+++ b/lib/namei.c
@@ -144,8 +144,6 @@ int erofs_read_inode_from_disk(struct erofs_inode *vi)
 		vi->u.chunkbits = sbi->blkszbits +
 			(vi->u.chunkformat & EROFS_CHUNK_FORMAT_BLKBITS_MASK);
 	} else if (erofs_inode_is_data_compressed(vi->datalayout)) {
-		if (erofs_blksiz(vi->sbi) != EROFS_MAX_BLOCK_SIZE)
-			return -EOPNOTSUPP;
 		return z_erofs_fill_inode(vi);
 	}
 	return 0;
diff --git a/mkfs/main.c b/mkfs/main.c
index c03a7a8..37bf658 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -550,10 +550,11 @@ static int mkfs_parse_options_cfg(int argc, char *argv[])
 		cfg.c_dbg_lvl = EROFS_ERR;
 		cfg.c_showprogress = false;
 	}
-	if (cfg.c_compr_alg[0] && erofs_blksiz(&sbi) != EROFS_MAX_BLOCK_SIZE) {
-		erofs_err("compression is unsupported for now with block size %u",
-			  erofs_blksiz(&sbi));
-		return -EINVAL;
+	if (cfg.c_compr_alg[0] && erofs_blksiz(&sbi) != getpagesize()) {
+		erofs_warn("subpage blocksize with compression is not yet "
+			"supported. Compressed image will only work with "
+			"arch pagesize = blocksize = %u bytes",
+			erofs_blksiz(&sbi));
 	}
 	if (pclustersize_max) {
 		if (pclustersize_max < erofs_blksiz(&sbi) ||
-- 
2.42.0.283.g2d96d420d3-goog



More information about the Linux-erofs mailing list