From d92098b92dad44eeb4bf40bfca8818bd2d660a99 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Tue, 30 Mar 2021 12:40:28 +0200 Subject: libsqfs: block processor: Fix account for manually submitted blocks This was already in the original block processor but got dropped by accident when restructuring it. The problem manifests itself when manually submitting fragment blocks. They no longer get correct I/O queue tickets, clog up the queue and the processor eventually throws an internal error. Signed-off-by: David Oberhollenzer --- lib/sqfs/block_processor/backend.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sqfs/block_processor/backend.c b/lib/sqfs/block_processor/backend.c index 616cbe6..acff7f5 100644 --- a/lib/sqfs/block_processor/backend.c +++ b/lib/sqfs/block_processor/backend.c @@ -320,8 +320,10 @@ int dequeue_block(sqfs_block_processor_t *proc) if (status != 0) return status; } else { - if (!(blk->flags & SQFS_BLK_FRAGMENT_BLOCK)) + if (!(blk->flags & SQFS_BLK_FRAGMENT_BLOCK) || + (blk->flags & BLK_FLAG_MANUAL_SUBMISSION)) { blk->io_seq_num = proc->io_seq_num++; + } store_io_block(proc, blk); } -- cgit v1.2.3