diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index 8f15162..bfa0c6e 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -277,7 +277,8 @@
 /* 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 b3f9477..0df0c7c 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 @@
 	/*
 	 * 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 a5b93e8..f7c97c0 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -508,7 +508,7 @@
 		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 @@
 
 	BUG_ON(!ino);
 
-	autofs4_init_ino(ino, sbi);
+	autofs4_clean_ino(ino);
 
 	autofs4_del_active(dentry);
 
@@ -732,7 +732,7 @@
 
 	BUG_ON(!ino);
 
-	autofs4_init_ino(ino, sbi);
+	autofs4_clean_ino(ino);
 
 	autofs4_del_active(dentry);
 
