/* Linked list node that places this dentry in the list of aliases for
* its inode (d_inode) */
- struct list_head d_alias;
+ struct hlist_node d_alias;
/* Pointer to the UTF-16LE short filename (malloc()ed buffer), or NULL
* if this dentry has no short name. */
/* List of dentries that are aliases for this inode. There will be
* i_nlink dentries in this list. */
- struct list_head i_dentry;
+ struct hlist_head i_dentry;
/* Field to place this inode into a list. While reading a WIM image or
* adding files to a WIM image this is owned by the inode table;
/* Iterate through each alias of the specified inode. */
#define inode_for_each_dentry(dentry, inode) \
- list_for_each_entry((dentry), &(inode)->i_dentry, d_alias)
+ hlist_for_each_entry((dentry), &(inode)->i_dentry, d_alias)
/* Return an alias of the specified inode. */
#define inode_first_dentry(inode) \
- container_of(inode->i_dentry.next, struct wim_dentry, d_alias)
+ hlist_entry(inode->i_dentry.first, struct wim_dentry, d_alias)
/* Return the full path of an alias of the specified inode, or NULL if a full
* path could not be determined. */
inode->i_security_id = -1;
/*inode->i_nlink = 0;*/
inode->i_rp_flags = WIM_RP_FLAG_NOT_FIXED;
- INIT_LIST_HEAD(&inode->i_dentry);
+ INIT_HLIST_HEAD(&inode->i_dentry);
inode->i_streams = inode->i_embedded_streams;
if (set_timestamps) {
u64 now = now_as_wim_timestamp();
{
wimlib_assert(!dentry->d_inode);
- list_add_tail(&dentry->d_alias, &inode->i_dentry);
+ hlist_add_head(&dentry->d_alias, &inode->i_dentry);
dentry->d_inode = inode;
inode->i_nlink++;
}
wimlib_assert(inode->i_nlink > 0);
- list_del(&dentry->d_alias);
+ hlist_del(&dentry->d_alias);
dentry->d_inode = NULL;
inode->i_nlink--;