mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
autofs: get rid of pointless checks around ->count handling
* IS_ROOT can't be true for unlink or rmdir victim * any positive autofs dentry has non-NULL autofs_dentry_ino() * autofs symlink can't have ->count other than 1 * autofs empty directory can't have ->count other than 1 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
e509d6e9c1
commit
41ca19740a
1 changed files with 8 additions and 14 deletions
|
@ -571,8 +571,7 @@ static int autofs_dir_symlink(struct inode *dir,
|
||||||
dget(dentry);
|
dget(dentry);
|
||||||
atomic_inc(&ino->count);
|
atomic_inc(&ino->count);
|
||||||
p_ino = autofs_dentry_ino(dentry->d_parent);
|
p_ino = autofs_dentry_ino(dentry->d_parent);
|
||||||
if (p_ino && !IS_ROOT(dentry))
|
atomic_inc(&p_ino->count);
|
||||||
atomic_inc(&p_ino->count);
|
|
||||||
|
|
||||||
dir->i_mtime = current_time(dir);
|
dir->i_mtime = current_time(dir);
|
||||||
|
|
||||||
|
@ -610,11 +609,9 @@ static int autofs_dir_unlink(struct inode *dir, struct dentry *dentry)
|
||||||
if (sbi->flags & AUTOFS_SBI_CATATONIC)
|
if (sbi->flags & AUTOFS_SBI_CATATONIC)
|
||||||
return -EACCES;
|
return -EACCES;
|
||||||
|
|
||||||
if (atomic_dec_and_test(&ino->count)) {
|
atomic_dec(&ino->count);
|
||||||
p_ino = autofs_dentry_ino(dentry->d_parent);
|
p_ino = autofs_dentry_ino(dentry->d_parent);
|
||||||
if (p_ino && !IS_ROOT(dentry))
|
atomic_dec(&p_ino->count);
|
||||||
atomic_dec(&p_ino->count);
|
|
||||||
}
|
|
||||||
dput(ino->dentry);
|
dput(ino->dentry);
|
||||||
|
|
||||||
d_inode(dentry)->i_size = 0;
|
d_inode(dentry)->i_size = 0;
|
||||||
|
@ -706,11 +703,9 @@ static int autofs_dir_rmdir(struct inode *dir, struct dentry *dentry)
|
||||||
if (sbi->version < 5)
|
if (sbi->version < 5)
|
||||||
autofs_clear_leaf_automount_flags(dentry);
|
autofs_clear_leaf_automount_flags(dentry);
|
||||||
|
|
||||||
if (atomic_dec_and_test(&ino->count)) {
|
atomic_dec(&ino->count);
|
||||||
p_ino = autofs_dentry_ino(dentry->d_parent);
|
p_ino = autofs_dentry_ino(dentry->d_parent);
|
||||||
if (p_ino && dentry->d_parent != dentry)
|
atomic_dec(&p_ino->count);
|
||||||
atomic_dec(&p_ino->count);
|
|
||||||
}
|
|
||||||
dput(ino->dentry);
|
dput(ino->dentry);
|
||||||
d_inode(dentry)->i_size = 0;
|
d_inode(dentry)->i_size = 0;
|
||||||
clear_nlink(d_inode(dentry));
|
clear_nlink(d_inode(dentry));
|
||||||
|
@ -758,8 +753,7 @@ static int autofs_dir_mkdir(struct inode *dir,
|
||||||
dget(dentry);
|
dget(dentry);
|
||||||
atomic_inc(&ino->count);
|
atomic_inc(&ino->count);
|
||||||
p_ino = autofs_dentry_ino(dentry->d_parent);
|
p_ino = autofs_dentry_ino(dentry->d_parent);
|
||||||
if (p_ino && !IS_ROOT(dentry))
|
atomic_inc(&p_ino->count);
|
||||||
atomic_inc(&p_ino->count);
|
|
||||||
inc_nlink(dir);
|
inc_nlink(dir);
|
||||||
dir->i_mtime = current_time(dir);
|
dir->i_mtime = current_time(dir);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue