aboutsummaryrefslogtreecommitdiffstats
path: root/fs/pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/pipe.c')
-rw-r--r--fs/pipe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/pipe.c b/fs/pipe.c
index 9a06e8e48e8d..68090e84f589 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -935,8 +935,9 @@ struct file *create_write_pipe(void)
935 935
936void free_write_pipe(struct file *f) 936void free_write_pipe(struct file *f)
937{ 937{
938 mntput(f->f_path.mnt); 938 free_pipe_info(f->f_dentry->d_inode);
939 dput(f->f_path.dentry); 939 dput(f->f_path.dentry);
940 mntput(f->f_path.mnt);
940 put_filp(f); 941 put_filp(f);
941} 942}
942 943
@@ -994,6 +995,8 @@ int do_pipe(int *fd)
994 err_fdr: 995 err_fdr:
995 put_unused_fd(fdr); 996 put_unused_fd(fdr);
996 err_read_pipe: 997 err_read_pipe:
998 dput(fr->f_dentry);
999 mntput(fr->f_vfsmnt);
997 put_filp(fr); 1000 put_filp(fr);
998 err_write_pipe: 1001 err_write_pipe:
999 free_write_pipe(fw); 1002 free_write_pipe(fw);