From: Gao Xiang Date: Thu, 2 Jan 2025 02:42:25 +0000 (+0800) Subject: erofs-utils: mkfs: fix `-Eall-fragments` for multi-threaded compression X-Git-Tag: accepted/tizen/unified/20250610.081809~71 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=04d6d5a84bed58713c9cfff5d135b6d3bf713556;p=platform%2Fupstream%2Ferofs-utils.git erofs-utils: mkfs: fix `-Eall-fragments` for multi-threaded compression `may_packing` in __z_erofs_compress_one() is still bypassed when multi-threaded compression is enabled, which is unexpected. Furthermore, multi-threaded `-Eall-fragments,ztailpacking` can sometimes corrupt images. Let's fix it. Fixes: 882ad1c3157f ("erofs-utils: mkfs: fix `-Eall-fragments` for multi-threaded compression") Fixes: 10c1590c0920 ("erofs-utils: enable multi-threaded support for `-Eall-fragments`") Signed-off-by: Gao Xiang Link: https://lore.kernel.org/r/20250102024225.2433419-1-hsiangkao@linux.alibaba.com --- diff --git a/lib/compress.c b/lib/compress.c index a18b4b5..0e8faad 100644 --- a/lib/compress.c +++ b/lib/compress.c @@ -565,8 +565,7 @@ static int __z_erofs_compress_one(struct z_erofs_compress_sctx *ctx, unsigned int len = ctx->tail - ctx->head; bool is_packed_inode = erofs_is_packed_inode(inode); bool tsg = (ctx->seg_idx + 1 >= ictx->seg_num), final = !ctx->remaining; - bool may_packing = (cfg.c_fragments && tsg && final && - !is_packed_inode && !z_erofs_mt_enabled); + bool may_packing = (cfg.c_fragments && tsg && final && !is_packed_inode); bool may_inline = (cfg.c_ztailpacking && tsg && final && !may_packing); unsigned int compressedsize; int ret;