X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Flookup_table.h;h=524e17e67ae8ec4510af14158c4682a8e9f98d18;hp=5e4d1f5836d444dc8bd41ca29db8ad50cc9ea25a;hb=5046b052366414f09940041ad79244c320d24751;hpb=5c85ddd0c9dc90b43603317dcfb809bfc4d192bc diff --git a/src/lookup_table.h b/src/lookup_table.h index 5e4d1f58..524e17e6 100644 --- a/src/lookup_table.h +++ b/src/lookup_table.h @@ -50,7 +50,10 @@ struct ntfs_location { struct lookup_table_entry { /* List of lookup table entries in this hash bucket */ - struct hlist_node hash_list; + union { + struct hlist_node hash_list; + struct list_head list; + }; /* Location and size of the stream in the WIM, whether it is compressed * or not, and whether it's a metadata resource or not. This is an @@ -236,6 +239,9 @@ static inline void lookup_table_unlink(struct lookup_table *table, extern struct lookup_table_entry *new_lookup_table_entry(); +extern struct lookup_table_entry * +clone_lookup_table_entry(const struct lookup_table_entry *lte); + extern int for_lookup_table_entry(struct lookup_table *table, int (*visitor)(struct lookup_table_entry *, void *), void *arg); @@ -268,6 +274,7 @@ extern int write_lookup_table_entry(struct lookup_table_entry *lte, void *__out) extern void free_lookup_table_entry(struct lookup_table_entry *lte); extern int dentry_resolve_ltes(struct dentry *dentry, void *__table); +extern int dentry_unresolve_ltes(struct dentry *dentry, void *ignore); /* Writes the lookup table to the output file. */ static inline int write_lookup_table(struct lookup_table *table, FILE *out)