On Wed, 1 Mar 2023 02:54:58 +0800
Gao Xiang <[email protected]> wrote:
> The decoded lengths of uncompressed pclusters should be
> strictly no more than encoded lengths.
>
> Fixes: 9fa9b017f773 ("erofs-utils: mkfs: support fragments")
> Signed-off-by: Gao Xiang <[email protected]>
Reviewed-by: Yue Hu <[email protected]>
> ---
> lib/compress.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/compress.c b/lib/compress.c
> index 0aaec30..8169990 100644
> --- a/lib/compress.c
> +++ b/lib/compress.c
> @@ -95,7 +95,7 @@ static void z_erofs_write_indexes(struct
> z_erofs_vle_compress_ctx *ctx)
> * A lcluster cannot have three parts with the middle one which
> * is well-compressed for !ztailpacking cases.
> */
> - DBG_BUGON(!ctx->e.raw && !cfg.c_ztailpacking);
> + DBG_BUGON(!ctx->e.raw && !cfg.c_ztailpacking &&
> !cfg.c_fragments);
> DBG_BUGON(ctx->e.partial);
> type = ctx->e.raw ? Z_EROFS_VLE_CLUSTER_TYPE_PLAIN :
> Z_EROFS_VLE_CLUSTER_TYPE_HEAD;
> @@ -457,7 +457,7 @@ frag_packing:
> if (ret < 0)
> return ret;
> ctx->e.compressedblks = 0; /* indicate a fragment */
> - ctx->e.raw = true;
> + ctx->e.raw = false;
> ctx->fragemitted = true;
> fix_dedupedfrag = false;
> /* tailpcluster should be less than 1 block */
> @@ -928,7 +928,7 @@ int erofs_write_compressed_file(struct erofs_inode
> *inode, int fd)
> z_erofs_write_indexes(&ctx);
> ctx.e.length = inode->fragment_size;
> ctx.e.compressedblks = 0;
> - ctx.e.raw = true;
> + ctx.e.raw = false;
> ctx.e.partial = false;
> ctx.e.blkaddr = ctx.blkaddr;
> }