]> wimlib.net Git - wimlib/blobdiff - src/resource.c
wimfs_write(), dentry_to_stbuf()
[wimlib] / src / resource.c
index 731bd1c0c3ebb258cbd8462b33ae1aaf5456ab79..48f54804576a3d68fdb25d308fe4d8d26dc61e01 100644 (file)
@@ -991,16 +991,19 @@ int read_metadata_resource(FILE *fp, int wim_ctype, struct image_metadata *imd)
        if (ret != 0)
                goto out_free_dentry_tree;
 
+       DEBUG("Reading dentry tree");
        /* Now read the entire directory entry tree. */
        ret = read_dentry_tree(buf, res_entry->original_size, dentry);
        if (ret != 0)
                goto out_free_dentry_tree;
 
+       DEBUG("Calculating dentry full paths");
        /* Calculate the full paths in the dentry tree. */
        ret = for_dentry_in_tree(dentry, calculate_dentry_full_path, NULL);
        if (ret != 0)
                goto out_free_dentry_tree;
 
+       DEBUG("Building link group table");
        lgt = new_link_group_table(9001);
        if (!lgt)
                goto out_free_dentry_tree;
@@ -1008,6 +1011,12 @@ int read_metadata_resource(FILE *fp, int wim_ctype, struct image_metadata *imd)
        if (ret != 0)
                goto out_free_lgt;
 
+       DEBUG("Freeing duplicate ADS entries in link group table");
+       ret = link_groups_free_duplicate_data(lgt);
+       if (ret != 0)
+               goto out_free_lgt;
+       DEBUG("Done reading image metadata");
+
        imd->lgt           = lgt;
        imd->security_data = sd;
        imd->root_dentry   = dentry;
@@ -1082,6 +1091,9 @@ int write_metadata_resource(WIMStruct *w)
        if (ret != 0)
                return ret;
 
+       DEBUG("Updating metadata lookup table entry (size %zu)",
+             metadata_original_size);
+
        /* Update the lookup table entry, including the hash and output resource
         * entry fields, for this image's metadata resource.  */
        lte = wim_metadata_lookup_table_entry(w);