Commit 66511493 authored by Ian Kent's avatar Ian Kent Committed by Al Viro

autofs4: Clean up autofs4_free_ino()

When this function is called the local reference count does't need to
be updated since the dentry is going away and dput definitely must
not be called here.

Also the autofs info struct field inode isn't used so remove it.
Signed-off-by: default avatarIan Kent <raven@themaw.net>
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 71e469db
...@@ -45,7 +45,6 @@ struct autofs_info *autofs4_init_ino(struct autofs_info *ino, ...@@ -45,7 +45,6 @@ struct autofs_info *autofs4_init_ino(struct autofs_info *ino,
if (!reinit) { if (!reinit) {
ino->flags = 0; ino->flags = 0;
ino->inode = NULL;
ino->dentry = NULL; ino->dentry = NULL;
ino->size = 0; ino->size = 0;
INIT_LIST_HEAD(&ino->active); INIT_LIST_HEAD(&ino->active);
...@@ -76,19 +75,8 @@ struct autofs_info *autofs4_init_ino(struct autofs_info *ino, ...@@ -76,19 +75,8 @@ struct autofs_info *autofs4_init_ino(struct autofs_info *ino,
void autofs4_free_ino(struct autofs_info *ino) void autofs4_free_ino(struct autofs_info *ino)
{ {
struct autofs_info *p_ino;
if (ino->dentry) { if (ino->dentry) {
ino->dentry->d_fsdata = NULL; ino->dentry->d_fsdata = NULL;
if (ino->dentry->d_inode) {
struct dentry *parent = ino->dentry->d_parent;
if (atomic_dec_and_test(&ino->count)) {
p_ino = autofs4_dentry_ino(parent);
if (p_ino && parent != ino->dentry)
atomic_dec(&p_ino->count);
}
dput(ino->dentry);
}
ino->dentry = NULL; ino->dentry = NULL;
} }
if (ino->free) if (ino->free)
...@@ -390,7 +378,6 @@ struct inode *autofs4_get_inode(struct super_block *sb, ...@@ -390,7 +378,6 @@ struct inode *autofs4_get_inode(struct super_block *sb,
if (inode == NULL) if (inode == NULL)
return NULL; return NULL;
inf->inode = inode;
inode->i_mode = inf->mode; inode->i_mode = inf->mode;
if (sb->s_root) { if (sb->s_root) {
inode->i_uid = sb->s_root->d_inode->i_uid; inode->i_uid = sb->s_root->d_inode->i_uid;
......
...@@ -151,11 +151,8 @@ void autofs4_dentry_release(struct dentry *de) ...@@ -151,11 +151,8 @@ void autofs4_dentry_release(struct dentry *de)
DPRINTK("releasing %p", de); DPRINTK("releasing %p", de);
inf = autofs4_dentry_ino(de); inf = autofs4_dentry_ino(de);
de->d_fsdata = NULL;
if (inf) { if (inf) {
struct autofs_sb_info *sbi = autofs4_sbi(de->d_sb); struct autofs_sb_info *sbi = autofs4_sbi(de->d_sb);
if (sbi) { if (sbi) {
spin_lock(&sbi->lookup_lock); spin_lock(&sbi->lookup_lock);
if (!list_empty(&inf->active)) if (!list_empty(&inf->active))
...@@ -164,10 +161,6 @@ void autofs4_dentry_release(struct dentry *de) ...@@ -164,10 +161,6 @@ void autofs4_dentry_release(struct dentry *de)
list_del(&inf->expiring); list_del(&inf->expiring);
spin_unlock(&sbi->lookup_lock); spin_unlock(&sbi->lookup_lock);
} }
inf->dentry = NULL;
inf->inode = NULL;
autofs4_free_ino(inf); autofs4_free_ino(inf);
} }
} }
...@@ -583,7 +576,6 @@ static int autofs4_dir_symlink(struct inode *dir, ...@@ -583,7 +576,6 @@ static int autofs4_dir_symlink(struct inode *dir,
p_ino = autofs4_dentry_ino(dentry->d_parent); p_ino = autofs4_dentry_ino(dentry->d_parent);
if (p_ino && dentry->d_parent != dentry) if (p_ino && dentry->d_parent != dentry)
atomic_inc(&p_ino->count); atomic_inc(&p_ino->count);
ino->inode = inode;
ino->u.symlink = cp; ino->u.symlink = cp;
dir->i_mtime = CURRENT_TIME; dir->i_mtime = CURRENT_TIME;
...@@ -713,7 +705,6 @@ static int autofs4_dir_mkdir(struct inode *dir, struct dentry *dentry, int mode) ...@@ -713,7 +705,6 @@ static int autofs4_dir_mkdir(struct inode *dir, struct dentry *dentry, int mode)
p_ino = autofs4_dentry_ino(dentry->d_parent); p_ino = autofs4_dentry_ino(dentry->d_parent);
if (p_ino && dentry->d_parent != dentry) if (p_ino && dentry->d_parent != dentry)
atomic_inc(&p_ino->count); atomic_inc(&p_ino->count);
ino->inode = inode;
inc_nlink(dir); inc_nlink(dir);
dir->i_mtime = CURRENT_TIME; dir->i_mtime = CURRENT_TIME;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment