diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-19 13:21:52 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-19 15:17:52 +0200 |
commit | 19fbebec161c749e5bfe440e4514e2bc2d2ac3d4 (patch) | |
tree | aac5d9442ec0979cd52e33332db29b8cd9edcf07 /lib/sqfs | |
parent | 9864ea5b2045f4bd72633152d71dd1c7f8b0b7f9 (diff) |
Cleanup fstree code
Replace default_$FIELD with a struct stat. Merge the rest of
add_node/add_file into mknode and add by path+stat.
Expose the mknode function and replace all the duplicated node pointer
arithmetic magic with a call to mknode.
Plus a generic cleanup by utlizing new util functions.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/sqfs')
-rw-r--r-- | lib/sqfs/deserialize_fstree.c | 10 | ||||
-rw-r--r-- | lib/sqfs/write_inode.c | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/sqfs/deserialize_fstree.c b/lib/sqfs/deserialize_fstree.c index 95dce98..2994007 100644 --- a/lib/sqfs/deserialize_fstree.c +++ b/lib/sqfs/deserialize_fstree.c @@ -158,10 +158,12 @@ int deserialize_fstree(fstree_t *out, sqfs_super_t *super, compressor_t *cmp, memset(out, 0, sizeof(*out)); out->block_size = super->block_size; - out->default_uid = 0; - out->default_gid = 0; - out->default_mode = 0755; - out->default_mtime = super->modification_time; + out->defaults.st_uid = 0; + out->defaults.st_gid = 0; + out->defaults.st_mode = 0755; + out->defaults.st_mtime = super->modification_time; + out->defaults.st_ctime = super->modification_time; + out->defaults.st_atime = super->modification_time; out->root = tree_node_from_inode(root, &idtbl, "", super->block_size); free(root); diff --git a/lib/sqfs/write_inode.c b/lib/sqfs/write_inode.c index 961013c..ee4ebc6 100644 --- a/lib/sqfs/write_inode.c +++ b/lib/sqfs/write_inode.c @@ -95,7 +95,7 @@ int meta_writer_write_inode(fstree_t *fs, id_table_t *idtbl, meta_writer_t *im, base.mode = htole16(node->mode); base.uid_idx = htole16(uid_idx); base.gid_idx = htole16(gid_idx); - base.mod_time = htole32(fs->default_mtime); + base.mod_time = htole32(fs->defaults.st_mtime); base.inode_number = htole32(node->inode_num); if (meta_writer_append(im, &base, sizeof(base))) { |