if (get_dentry_child_with_name(parent, basename, WIMLIB_CASE_SENSITIVE))
return -EEXIST;
- if (new_dentry_with_inode(basename, &new_dentry))
+ if (new_dentry_with_new_inode(basename, true, &new_dentry))
return -ENOMEM;
new_inode = new_dentry->d_inode;
if (get_dentry_child_with_name(dir, new_name, WIMLIB_CASE_SENSITIVE))
return -EEXIST;
- if (new_dentry(new_name, &new_alias))
+ if (new_dentry_with_existing_inode(new_name, inode, &new_alias))
return -ENOMEM;
- inode_ref_blobs(inode);
- d_associate(new_alias, inode);
dentry_add_child(dir, new_alias);
touch_inode(dir->d_inode);
return 0;