summary refs log tree commit diff
path: root/fs/autofs4
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-01-16 18:43:40 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2011-01-18 01:21:28 -0500
commit26e6c910670171410577c7df2aebe94cef76e150 (patch)
tree407ecb012b91efce80be76f0191b2efc43689b7f /fs/autofs4
parent5a37db302e698a83209eff22ca8f3fd05eb1d84b (diff)
downloadlinux-26e6c910670171410577c7df2aebe94cef76e150.tar.gz
autofs4: split autofs4_init_ino()
split init_ino into new_ino and clean_ino; the former is
what used to be init_ino(NULL, sbi), the latter is for cases
where we passed non-NULL ino.  Lose unused arguments.

Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/autofs4')
-rw-r--r--fs/autofs4/autofs_i.h3
-rw-r--r--fs/autofs4/inode.c32
-rw-r--r--fs/autofs4/root.c6
3 files changed, 15 insertions, 26 deletions
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index 8f15162f1672..bfa0c6e542f2 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -277,7 +277,8 @@ static inline void managed_dentry_clear_managed(struct dentry *dentry)
 /* Initializing function */
 
 int autofs4_fill_super(struct super_block *, void *, int);
-struct autofs_info *autofs4_init_ino(struct autofs_info *, struct autofs_sb_info *sbi);
+struct autofs_info *autofs4_new_ino(struct autofs_sb_info *);
+void autofs4_clean_ino(struct autofs_info *);
 
 /* Queue management functions */
 
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
index b3f9477c9745..0df0c7c46fa2 100644
--- a/fs/autofs4/inode.c
+++ b/fs/autofs4/inode.c
@@ -22,35 +22,23 @@
 #include "autofs_i.h"
 #include <linux/module.h>
 
-struct autofs_info *autofs4_init_ino(struct autofs_info *ino,
-				     struct autofs_sb_info *sbi)
+struct autofs_info *autofs4_new_ino(struct autofs_sb_info *sbi)
 {
-	int reinit = 1;
-
-	if (ino == NULL) {
-		reinit = 0;
-		ino = kmalloc(sizeof(*ino), GFP_KERNEL);
-	}
-
-	if (ino == NULL)
-		return NULL;
-
-	if (!reinit) {
-		ino->flags = 0;
-		ino->dentry = NULL;
+	struct autofs_info *ino = kzalloc(sizeof(*ino), GFP_KERNEL);
+	if (ino) {
 		INIT_LIST_HEAD(&ino->active);
-		ino->active_count = 0;
 		INIT_LIST_HEAD(&ino->expiring);
-		atomic_set(&ino->count, 0);
+		ino->last_used = jiffies;
+		ino->sbi = sbi;
 	}
+	return ino;
+}
 
+void autofs4_clean_ino(struct autofs_info *ino)
+{
 	ino->uid = 0;
 	ino->gid = 0;
 	ino->last_used = jiffies;
-
-	ino->sbi = sbi;
-
-	return ino;
 }
 
 void autofs4_free_ino(struct autofs_info *ino)
@@ -256,7 +244,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
 	/*
 	 * Get the root inode and dentry, but defer checking for errors.
 	 */
-	ino = autofs4_init_ino(NULL, sbi);
+	ino = autofs4_new_ino(sbi);
 	if (!ino)
 		goto fail_free;
 	root_inode = autofs4_get_inode(s, S_IFDIR | 0755);
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
index a5b93e8f49b5..f7c97c084c1f 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -508,7 +508,7 @@ static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, s
 		if (autofs_type_indirect(sbi->type) && IS_ROOT(dentry->d_parent))
 			__managed_dentry_set_managed(dentry);
 
-		ino = autofs4_init_ino(NULL, sbi);
+		ino = autofs4_new_ino(sbi);
 		if (!ino)
 			return ERR_PTR(-ENOMEM);
 
@@ -541,7 +541,7 @@ static int autofs4_dir_symlink(struct inode *dir,
 
 	BUG_ON(!ino);
 
-	autofs4_init_ino(ino, sbi);
+	autofs4_clean_ino(ino);
 
 	autofs4_del_active(dentry);
 
@@ -732,7 +732,7 @@ static int autofs4_dir_mkdir(struct inode *dir, struct dentry *dentry, int mode)
 
 	BUG_ON(!ino);
 
-	autofs4_init_ino(ino, sbi);
+	autofs4_clean_ino(ino);
 
 	autofs4_del_active(dentry);