summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-03-30 12:40:28 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-03-30 12:42:43 +0200
commitd92098b92dad44eeb4bf40bfca8818bd2d660a99 (patch)
tree07042b4e8882db39ec5a56436bf0f7e21f1ec5ec
parent78502ff3f0d7ae47c7468e718bcba2a84933cf51 (diff)
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 <david.oberhollenzer@sigma-star.at>
-rw-r--r--lib/sqfs/block_processor/backend.c4
1 files changed, 3 insertions, 1 deletions
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);
}