X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fresource.c;h=5f97ed0223b3a3fc1c9b834796f33927d6ee68a2;hp=7baaa15ca4ba4c59d4126e76be0baf1d086fb4b3;hb=63a5804943519281f206ca0fefacfe2b99fc9958;hpb=9b1647d673092a6c53a90c1d89831a5131660b9d diff --git a/src/resource.c b/src/resource.c index 7baaa15c..5f97ed02 100644 --- a/src/resource.c +++ b/src/resource.c @@ -1204,7 +1204,7 @@ int read_metadata_resource(WIMStruct *w, struct image_metadata *imd) dentry->prev = dentry; if (ret != 0) goto out_free_dentry_tree; - list_add(&dentry->inode_dentry_list, &dentry->inode->dentry_list); + inode_add_dentry(dentry, dentry->inode); /* Now read the entire directory entry tree into memory. */ DEBUG("Reading dentry tree"); @@ -1226,13 +1226,14 @@ int read_metadata_resource(WIMStruct *w, struct image_metadata *imd) for_dentry_in_tree(dentry, inode_table_insert, &inode_tab); - DEBUG("Fixing inconsistencies in the link groups"); + DEBUG("Fixing inconsistencies in the hard link groups"); ret = fix_inodes(&inode_tab, &inode_list); destroy_inode_table(&inode_tab); if (ret != 0) goto out_free_dentry_tree; DEBUG("Running miscellaneous verifications on the dentry tree"); + for_lookup_table_entry(w->lookup_table, lte_zero_real_refcnt, NULL); ret = for_dentry_in_tree(dentry, verify_dentry, w); if (ret != 0) goto out_free_dentry_tree; @@ -1240,6 +1241,7 @@ int read_metadata_resource(WIMStruct *w, struct image_metadata *imd) DEBUG("Done reading image metadata"); imd->root_dentry = dentry; + imd->inode_list = inode_list; goto out_free_buf; out_free_dentry_tree: free_dentry_tree(dentry, NULL);