Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: autofs4: bogus dentry_unhash() added in ->unlink() vfs: shrink_dcache_parent before rmdir, dir rename
This commit is contained in:
commit
89c122236e
|
@ -583,8 +583,6 @@ static int autofs4_dir_unlink(struct inode *dir, struct dentry *dentry)
|
|||
if (!autofs4_oz_mode(sbi) && !capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
|
||||
dentry_unhash(dentry);
|
||||
|
||||
if (atomic_dec_and_test(&ino->count)) {
|
||||
p_ino = autofs4_dentry_ino(dentry->d_parent);
|
||||
if (p_ino && dentry->d_parent != dentry)
|
||||
|
|
|
@ -2579,6 +2579,7 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry)
|
|||
if (error)
|
||||
goto out;
|
||||
|
||||
shrink_dcache_parent(dentry);
|
||||
error = dir->i_op->rmdir(dir, dentry);
|
||||
if (error)
|
||||
goto out;
|
||||
|
@ -2993,6 +2994,8 @@ static int vfs_rename_dir(struct inode *old_dir, struct dentry *old_dentry,
|
|||
if (d_mountpoint(old_dentry) || d_mountpoint(new_dentry))
|
||||
goto out;
|
||||
|
||||
if (target)
|
||||
shrink_dcache_parent(new_dentry);
|
||||
error = old_dir->i_op->rename(old_dir, old_dentry, new_dir, new_dentry);
|
||||
if (error)
|
||||
goto out;
|
||||
|
|
Loading…
Reference in New Issue