diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-23 14:17:02 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-23 14:17:02 +0200 |
commit | 57da296d0e31b87040510fa49eb75e950a4f0d67 (patch) | |
tree | 251332ee0c0d5bf8ce57863532c52d970841b7a0 /lib | |
parent | bcb5a6e74ac97004acc9a4937285f001b895e0d7 (diff) |
Replace user pointer in sqfs_block_t with explicit inode pointer
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sqfs/io.c | 12 | ||||
-rw-r--r-- | lib/sqfshelper/data_writer.c | 12 |
2 files changed, 11 insertions, 13 deletions
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 <stdlib.h> 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); |