diff --git a/fs/pipe.c b/fs/pipe.c
index 6cac5ceeded0ff6a35b37c71054fafde82eb094a..a029a14bacf1ff5d304caa6cf9471468fd3d39c0 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -751,7 +751,7 @@ pipe_release(struct inode *inode, struct file *file)
 	__pipe_unlock(pipe);
 
 	if (kill)
-		__free_pipe_info(pipe);
+		free_pipe_info(pipe);
 
 	return 0;
 }
@@ -795,7 +795,7 @@ struct pipe_inode_info *alloc_pipe_info(void)
 	return NULL;
 }
 
-void __free_pipe_info(struct pipe_inode_info *pipe)
+void free_pipe_info(struct pipe_inode_info *pipe)
 {
 	int i;
 
@@ -810,12 +810,6 @@ void __free_pipe_info(struct pipe_inode_info *pipe)
 	kfree(pipe);
 }
 
-void free_pipe_info(struct inode *inode)
-{
-	__free_pipe_info(inode->i_pipe);
-	inode->i_pipe = NULL;
-}
-
 static struct vfsmount *pipe_mnt __read_mostly;
 
 /*
@@ -911,12 +905,12 @@ int create_pipe_files(struct file **res, int flags)
 err_file:
 	put_filp(f);
 err_dentry:
-	free_pipe_info(inode);
+	free_pipe_info(inode->i_pipe);
 	path_put(&path);
 	return err;
 
 err_inode:
-	free_pipe_info(inode);
+	free_pipe_info(inode->i_pipe);
 	iput(inode);
 	return err;
 }
@@ -1039,7 +1033,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
 		if (unlikely(inode->i_pipe)) {
 			inode->i_pipe->files++;
 			spin_unlock(&inode->i_lock);
-			__free_pipe_info(pipe);
+			free_pipe_info(pipe);
 			pipe = inode->i_pipe;
 		} else {
 			inode->i_pipe = pipe;
@@ -1143,7 +1137,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
 	spin_unlock(&inode->i_lock);
 	__pipe_unlock(pipe);
 	if (kill)
-		__free_pipe_info(pipe);
+		free_pipe_info(pipe);
 	return ret;
 }
 
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 765114f162435d95a816843aab674f425325f7e0..b8809fef61f5093445b773da85e416cf99e92094 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -147,8 +147,7 @@ int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *);
 void pipe_wait(struct pipe_inode_info *pipe);
 
 struct pipe_inode_info *alloc_pipe_info(void);
-void free_pipe_info(struct inode * inode);
-void __free_pipe_info(struct pipe_inode_info *);
+void free_pipe_info(struct pipe_inode_info *);
 
 /* Generic pipe buffer ops functions */
 void *generic_pipe_buf_map(struct pipe_inode_info *, struct pipe_buffer *, int);
diff --git a/kernel/exit.c b/kernel/exit.c
index 51e485ca993560015dbb56701fd249637afc721c..cd9e9e799bd2db051b37b65a37122095e3732933 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -847,7 +847,7 @@ void do_exit(long code)
 		exit_io_context(tsk);
 
 	if (tsk->splice_pipe)
-		__free_pipe_info(tsk->splice_pipe);
+		free_pipe_info(tsk->splice_pipe);
 
 	if (tsk->task_frag.page)
 		put_page(tsk->task_frag.page);