vfs: remove dget() from dentry_unhash()
This serves no useful purpose that I can discern. All callers (rename, rmdir) hold their own reference to the dentry. A quick audit of all file systems showed no relevant checks on the value of d_count in vfs_rmdir/vfs_rename_dir paths. Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -414,7 +414,6 @@ again:
|
||||
mutex_unlock(&hpfs_i(inode)->i_parent_mutex);
|
||||
dentry_unhash(dentry);
|
||||
if (!d_unhashed(dentry)) {
|
||||
dput(dentry);
|
||||
hpfs_unlock(dir->i_sb);
|
||||
return -ENOSPC;
|
||||
}
|
||||
@@ -422,7 +421,6 @@ again:
|
||||
!S_ISREG(inode->i_mode) ||
|
||||
get_write_access(inode)) {
|
||||
d_rehash(dentry);
|
||||
dput(dentry);
|
||||
} else {
|
||||
struct iattr newattrs;
|
||||
/*printk("HPFS: truncating file before delete.\n");*/
|
||||
@@ -430,7 +428,6 @@ again:
|
||||
newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
|
||||
err = notify_change(dentry, &newattrs);
|
||||
put_write_access(inode);
|
||||
dput(dentry);
|
||||
if (!err)
|
||||
goto again;
|
||||
}
|
||||
|
Reference in New Issue
Block a user