X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Finode_table.h;h=01f371e0ac8ceef8d1f68994ed6ec351bc860e9d;hp=abfc28bbf2621391a63326c383691e65de5442f1;hb=2fc33f535a398ea85964c0e483c5692821d775f3;hpb=be5acf31aa8292dcd4a2829492faefb0b200d28f diff --git a/include/wimlib/inode_table.h b/include/wimlib/inode_table.h index abfc28bb..01f371e0 100644 --- a/include/wimlib/inode_table.h +++ b/include/wimlib/inode_table.h @@ -6,27 +6,16 @@ struct wim_dentry; -/* Hash table to find inodes, given an inode number (in the case of reading - * a WIM images), or both an inode number and a device number (in the case of - * capturing a WIM image). */ +/* Hash table to find inodes for hard link detection, given an inode number (in + * the case of reading a WIM image), or both an inode number and a device number + * (in the case of adding files to a WIM image). Also contains an extra list to + * hold inodes for which no additional hard link detection is desired. In both + * cases the inodes are linked by i_hlist. */ struct wim_inode_table { - /* Fields for the hash table */ struct hlist_head *array; size_t num_entries; size_t capacity; - - /* - * Linked list of "extra" inodes. These may be: - * - * - inodes with link count 1, which are all allowed to have 0 for their - * inode number, meaning we cannot insert them into the hash table. - * - * - Groups we create ourselves by splitting a nominal inode due to - * inconsistencies in the dentries. These inodes will share an inode - * number with some other inode until assign_inode_numbers() is - * called. - */ - struct list_head extra_inodes; + struct hlist_head extra_inodes; }; @@ -40,7 +29,7 @@ inode_table_new_dentry(struct wim_inode_table *table, const tchar *name, extern void inode_table_prepare_inode_list(struct wim_inode_table *table, - struct list_head *head); + struct hlist_head *head); extern void destroy_inode_table(struct wim_inode_table *table);