X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Finode_table.c;h=1eac9466b133e1e4d50fa1ef8324d2a3798839b6;hb=80b48ed7aeb8e6c9460ab254920818f9e36d656e;hp=7c8626f2d1d5e8fdf9d6fb09b10f014db06ce918;hpb=f8223526610a6ed9410ed6ce2e704ef15ab8cade;p=wimlib diff --git a/src/inode_table.c b/src/inode_table.c index 7c8626f2..1eac9466 100644 --- a/src/inode_table.c +++ b/src/inode_table.c @@ -39,7 +39,7 @@ init_inode_table(struct wim_inode_table *table, size_t capacity) return WIMLIB_ERR_NOMEM; table->num_entries = 0; table->capacity = capacity; - INIT_LIST_HEAD(&table->extra_inodes); + INIT_HLIST_HEAD(&table->extra_inodes); return 0; } @@ -99,14 +99,14 @@ inode_table_new_dentry(struct wim_inode_table *table, const tchar *name, ret = new_dentry_with_new_inode(name, false, &dentry); if (ret) return ret; - list_add_tail(&dentry->d_inode->i_list, &table->extra_inodes); + hlist_add_head(&dentry->d_inode->i_hlist_node, &table->extra_inodes); } else { size_t pos; /* File that can be hardlinked--- search the table for an * existing inode matching the inode number and device. */ pos = hash_u64(hash_u64(ino) + hash_u64(devno)) % table->capacity; - hlist_for_each_entry(inode, &table->array[pos], i_hlist) { + hlist_for_each_entry(inode, &table->array[pos], i_hlist_node) { if (inode->i_ino == ino && inode->i_devno == devno) { /* Found; use the existing inode. */ return new_dentry_with_existing_inode(name, inode, @@ -121,7 +121,7 @@ inode_table_new_dentry(struct wim_inode_table *table, const tchar *name, inode = dentry->d_inode; inode->i_ino = ino; inode->i_devno = devno; - hlist_add_head(&inode->i_hlist, &table->array[pos]); + hlist_add_head(&inode->i_hlist_node, &table->array[pos]); table->num_entries++; } *dentry_ret = dentry; @@ -136,32 +136,31 @@ inode_table_new_dentry(struct wim_inode_table *table, const tchar *name, */ void inode_table_prepare_inode_list(struct wim_inode_table *table, - struct list_head *head) + struct hlist_head *head) { - struct wim_inode *inode, *tmp_inode; + struct wim_inode *inode; struct hlist_node *tmp; u64 cur_ino = 1; /* Re-assign inode numbers in the existing list to avoid duplicates. */ - list_for_each_entry(inode, head, i_list) + hlist_for_each_entry(inode, head, i_hlist_node) inode->i_ino = cur_ino++; /* Assign inode numbers to the new inodes and move them to the image's * inode list. */ for (size_t i = 0; i < table->capacity; i++) { - hlist_for_each_entry_safe(inode, tmp, &table->array[i], i_hlist) { + hlist_for_each_entry_safe(inode, tmp, &table->array[i], i_hlist_node) { inode->i_ino = cur_ino++; inode->i_devno = 0; - list_add_tail(&inode->i_list, head); + hlist_add_head(&inode->i_hlist_node, head); } INIT_HLIST_HEAD(&table->array[i]); } - list_for_each_entry_safe(inode, tmp_inode, &table->extra_inodes, i_list) - { + hlist_for_each_entry_safe(inode, tmp, &table->extra_inodes, i_hlist_node) { inode->i_ino = cur_ino++; inode->i_devno = 0; - list_add_tail(&inode->i_list, head); + hlist_add_head(&inode->i_hlist_node, head); } - INIT_LIST_HEAD(&table->extra_inodes); + INIT_HLIST_HEAD(&table->extra_inodes); table->num_entries = 0; }