diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-30 12:40:28 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-30 12:42:43 +0200 |
commit | d92098b92dad44eeb4bf40bfca8818bd2d660a99 (patch) | |
tree | 07042b4e8882db39ec5a56436bf0f7e21f1ec5ec | |
parent | 78502ff3f0d7ae47c7468e718bcba2a84933cf51 (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.c | 4 |
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); } |