Skip to content

Commit

Permalink
namei: minor vfs_unlink cleanup
Browse files Browse the repository at this point in the history
We'll be using dentry->d_inode in one more place.

Acked-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
J. Bruce Fields authored and Al Viro committed Nov 9, 2013
1 parent df4e8d2 commit 9accbb9
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions fs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -3617,6 +3617,7 @@ SYSCALL_DEFINE1(rmdir, const char __user *, pathname)

int vfs_unlink(struct inode *dir, struct dentry *dentry)
{
struct inode *target = dentry->d_inode;
int error = may_delete(dir, dentry, 0);

if (error)
Expand All @@ -3625,7 +3626,7 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
if (!dir->i_op->unlink)
return -EPERM;

mutex_lock(&dentry->d_inode->i_mutex);
mutex_lock(&target->i_mutex);
if (d_mountpoint(dentry))
error = -EBUSY;
else {
Expand All @@ -3636,11 +3637,11 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
dont_mount(dentry);
}
}
mutex_unlock(&dentry->d_inode->i_mutex);
mutex_unlock(&target->i_mutex);

/* We don't d_delete() NFS sillyrenamed files--they still exist. */
if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) {
fsnotify_link_count(dentry->d_inode);
fsnotify_link_count(target);
d_delete(dentry);
}

Expand Down

0 comments on commit 9accbb9

Please sign in to comment.