diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-01-14 04:40:36 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-01-19 04:03:37 +0100 |
commit | 1fc10c7115f71d9338bc79da72db2ee9e1a87073 (patch) | |
tree | d092d4de8f2e223d6f4360488b1aed066ef10733 /lib/sqfs/block_processor/serial.c | |
parent | cd3346a66910f02722e60c6a136405b6e2e4e0fe (diff) |
Fix: Move fragment consolidation back to block processor serial part
Keeping a list of fragments stored away in the current fragment block
and consolidating them in the thread pool takes them out of circulation.
If we have a lot of tiny fragments, this can lead to a situation where
all the limit is reached, but we cannot do anything, because we are
waiting for a block to complete, but they are all attached to the
current fragment block and the queue is empty.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/sqfs/block_processor/serial.c')
-rw-r--r-- | lib/sqfs/block_processor/serial.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/lib/sqfs/block_processor/serial.c b/lib/sqfs/block_processor/serial.c index f56f3cb..4d6b3ec 100644 --- a/lib/sqfs/block_processor/serial.c +++ b/lib/sqfs/block_processor/serial.c @@ -13,17 +13,6 @@ typedef struct { sqfs_u8 scratch[]; } serial_block_processor_t; -static void free_block_list(sqfs_block_t *list) -{ - sqfs_block_t *blk; - - while (list != NULL) { - blk = list; - list = blk->next; - free(blk); - } -} - static void block_processor_destroy(sqfs_object_t *obj) { sqfs_block_processor_t *proc = (sqfs_block_processor_t *)obj; @@ -63,7 +52,6 @@ static int append_to_work_queue(sqfs_block_processor_t *proc, sproc->status = proc->process_completed_block(proc, block); return sproc->status; fail: - free_block_list(block->frag_list); free(block); return sproc->status; } |