From 57da296d0e31b87040510fa49eb75e950a4f0d67 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 23 Sep 2019 14:17:02 +0200 Subject: Replace user pointer in sqfs_block_t with explicit inode pointer Signed-off-by: David Oberhollenzer --- lib/sqfs/io.c | 12 ++++++------ lib/sqfshelper/data_writer.c | 12 +++++------- 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/sqfs/io.c b/lib/sqfs/io.c index b41fc4a..eafa1cd 100644 --- a/lib/sqfs/io.c +++ b/lib/sqfs/io.c @@ -15,8 +15,8 @@ #include int sqfs_file_create_block(sqfs_file_t *file, uint64_t offset, - size_t size, void *user, uint32_t flags, - sqfs_block_t **out) + size_t size, sqfs_inode_generic_t *inode, + uint32_t flags, sqfs_block_t **out) { sqfs_block_t *blk = alloc_flex(sizeof(*blk), 1, size); int err; @@ -30,7 +30,7 @@ int sqfs_file_create_block(sqfs_file_t *file, uint64_t offset, return err; } - blk->user = user; + blk->inode = inode; blk->size = size; blk->flags = flags; @@ -39,8 +39,8 @@ int sqfs_file_create_block(sqfs_file_t *file, uint64_t offset, } int sqfs_file_create_block_dense(sqfs_file_t *file, uint64_t offset, - size_t size, void *user, uint32_t flags, - const sqfs_sparse_map_t *map, + size_t size, sqfs_inode_generic_t *inode, + uint32_t flags, const sqfs_sparse_map_t *map, sqfs_block_t **out) { sqfs_block_t *blk = alloc_flex(sizeof(*blk), 1, size); @@ -96,7 +96,7 @@ int sqfs_file_create_block_dense(sqfs_file_t *file, uint64_t offset, poffset += it->count; } - blk->user = user; + blk->inode = inode; blk->size = size; blk->flags = flags; diff --git a/lib/sqfshelper/data_writer.c b/lib/sqfshelper/data_writer.c index 9f418f1..a545896 100644 --- a/lib/sqfshelper/data_writer.c +++ b/lib/sqfshelper/data_writer.c @@ -113,7 +113,6 @@ static size_t deduplicate_blocks(data_writer_t *data, size_t count) static int block_callback(void *user, sqfs_block_t *blk) { - sqfs_inode_generic_t *inode = blk->user; data_writer_t *data = user; size_t start, count; uint64_t offset; @@ -144,7 +143,7 @@ static int block_callback(void *user, sqfs_block_t *blk) data->stats.frag_blocks_written += 1; } else { - inode->block_sizes[blk->index] = htole32(out); + blk->inode->block_sizes[blk->index] = htole32(out); data->stats.blocks_written += 1; } @@ -166,7 +165,7 @@ static int block_callback(void *user, sqfs_block_t *blk) start = deduplicate_blocks(data, count); offset = data->blocks[start].offset; - sqfs_inode_set_file_block_start(inode, offset); + sqfs_inode_set_file_block_start(blk->inode, offset); if (start < data->file_start) { offset = start + count; @@ -222,7 +221,6 @@ static int flush_fragment_block(data_writer_t *data) static int handle_fragment(data_writer_t *data, sqfs_block_t *frag) { - sqfs_inode_generic_t *inode = frag->user; size_t i, size, new_sz; uint64_t signature; void *new; @@ -232,7 +230,7 @@ static int handle_fragment(data_writer_t *data, sqfs_block_t *frag) for (i = 0; i < data->frag_list_num; ++i) { if (data->frag_list[i].signature == signature) { - sqfs_inode_set_frag_location(inode, + sqfs_inode_set_frag_location(frag->inode, data->frag_list[i].index, data->frag_list[i].offset); free(frag); @@ -282,7 +280,7 @@ static int handle_fragment(data_writer_t *data, sqfs_block_t *frag) data->frag_list[data->frag_list_num].signature = signature; data->frag_list_num += 1; - sqfs_inode_set_frag_location(inode, data->num_fragments, + sqfs_inode_set_frag_location(frag->inode, data->num_fragments, data->frag_block->size); data->frag_block->flags |= (frag->flags & SQFS_BLK_DONT_COMPRESS); @@ -314,7 +312,7 @@ static int add_sentinel_block(data_writer_t *data, sqfs_inode_generic_t *inode, return -1; } - blk->user = inode; + blk->inode = inode; blk->flags = SQFS_BLK_DONT_COMPRESS | SQFS_BLK_DONT_CHECKSUM | flags; return sqfs_block_processor_enqueue(data->proc, blk); -- cgit v1.2.3