* doesn't link the dentries.)
*
* For non-buggy WIMs this function will always return true. */
- return hashes_equal(inode_unnamed_stream_hash(inode_1),
- inode_unnamed_stream_hash(inode_2));
+ return hashes_equal(inode_get_hash_of_unnamed_data_stream(inode_1),
+ inode_get_hash_of_unnamed_data_stream(inode_2));
}
static int
struct wim_inode *d_inode = dentry->d_inode;
size_t pos;
struct wim_inode *inode;
- struct hlist_node *cur;
if (d_inode->i_ino == 0) {
list_add_tail(&d_inode->i_list, &table->extra_inodes);
/* Try adding this dentry to an existing inode. */
pos = d_inode->i_ino % table->capacity;
- hlist_for_each_entry(inode, cur, &table->array[pos], i_hlist) {
+ hlist_for_each_entry(inode, &table->array[pos], i_hlist) {
if (inode->i_ino != d_inode->i_ino) {
continue;
}
continue;
}
/* Transfer this dentry to the existing inode. */
- free_inode(d_inode);
- dentry->d_inode = inode;
- inode->i_nlink++;
- inode_add_dentry(dentry, inode);
+ d_disassociate(dentry);
+ d_associate(dentry, inode);
return 0;
}