[PATCH 1/2] erofs-utils: lib: get rid of a redundent compress round
Gao Xiang
hsiangkao at linux.alibaba.com
Sat Feb 5 03:09:43 AEDT 2022
No need another round if no remaining data.
It can improve compression ratios a bit for specific data.
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
lib/compress.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/lib/compress.c b/lib/compress.c
index ee09950..7db666a 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -584,16 +584,11 @@ int erofs_write_compressed_file(struct erofs_inode *inode)
remaining -= readcount;
ctx.tail += readcount;
- /* do one compress round */
- ret = vle_compress_one(inode, &ctx, false);
+ ret = vle_compress_one(inode, &ctx, !remaining);
if (ret)
- goto err_bdrop;
+ goto err_free_idata;
}
-
- /* do the final round */
- ret = vle_compress_one(inode, &ctx, true);
- if (ret)
- goto err_free_idata;
+ DBG_BUGON(ctx.head != ctx.tail);
/* fall back to no compression mode */
compressed_blocks = ctx.blkaddr - blkaddr;
--
2.24.4
More information about the Linux-erofs
mailing list