diff options
Diffstat (limited to 'fs/pipe.c')
-rw-r--r-- | fs/pipe.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -935,8 +935,9 @@ struct file *create_write_pipe(void) | |||
935 | 935 | ||
936 | void free_write_pipe(struct file *f) | 936 | void 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); |