Coverity-id: 569453
Fixes: 341d23a878a2 ("erofs-utils: mkfs: speed up uncompressed data handling")
Signed-off-by: Gao Xiang <[email protected]>
---
 lib/compress.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/lib/compress.c b/lib/compress.c
index 8999b2c7..bf471218 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -579,18 +579,15 @@ static int __z_erofs_compress_one(struct 
z_erofs_compress_sctx *ctx,
        if (len <= ctx->pclustersize) {
                if (!final || !len)
                        return 1;
-               if (may_packing) {
-                       if (inode->fragment_size && !ictx->fix_dedupedfrag) {
-                               ctx->pclustersize = roundup(len, blksz);
-                               goto fix_dedupedfrag;
-                       }
-                       e->length = len;
-                       goto frag_packing;
+               if (may_packing && inode->fragment_size && 
!ictx->fix_dedupedfrag) {
+                       ctx->pclustersize = roundup(len, blksz);
+                       goto fix_dedupedfrag;
                }
-               if (!may_inline && len <= blksz) {
-                       e->length = len;
+               e->length = len;
+               if (may_packing)
+                       goto frag_packing;
+               if (!may_inline && len <= blksz)
                        goto nocompression;
-               }
        }
 
        e->length = min(len, cfg.c_max_decompressed_extent_bytes);
@@ -629,7 +626,7 @@ retry_aligned:
                } else {
                        may_inline = false;
                        may_packing = false;
-                       e->length = min_t(u32, e->length, ret);
+                       e->length = min_t(u32, e->length, ctx->pclustersize);
 nocompression:
                        if (cfg.c_dedupe)
                                ret = write_uncompressed_block(ctx, len, dst);
-- 
2.43.5


Reply via email to