aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/namei.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/namei.c b/fs/namei.c
index 9f594312d486..af5119911704 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2564,24 +2564,24 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry)
2564 return -EPERM; 2564 return -EPERM;
2565 2565
2566 mutex_lock(&dentry->d_inode->i_mutex); 2566 mutex_lock(&dentry->d_inode->i_mutex);
2567 dentry_unhash(dentry);
2568 if (d_mountpoint(dentry)) 2567 if (d_mountpoint(dentry))
2569 error = -EBUSY; 2568 error = -EBUSY;
2570 else { 2569 else {
2571 error = security_inode_rmdir(dir, dentry); 2570 error = security_inode_rmdir(dir, dentry);
2572 if (!error) { 2571 if (!error) {
2572 dentry_unhash(dentry);
2573 error = dir->i_op->rmdir(dir, dentry); 2573 error = dir->i_op->rmdir(dir, dentry);
2574 if (!error) { 2574 if (!error) {
2575 dentry->d_inode->i_flags |= S_DEAD; 2575 dentry->d_inode->i_flags |= S_DEAD;
2576 dont_mount(dentry); 2576 dont_mount(dentry);
2577 } 2577 }
2578 dput(dentry);
2578 } 2579 }
2579 } 2580 }
2580 mutex_unlock(&dentry->d_inode->i_mutex); 2581 mutex_unlock(&dentry->d_inode->i_mutex);
2581 if (!error) { 2582 if (!error) {
2582 d_delete(dentry); 2583 d_delete(dentry);
2583 } 2584 }
2584 dput(dentry);
2585 2585
2586 return error; 2586 return error;
2587} 2587}