summaryrefslogtreecommitdiffstats
path: root/fs/pipe.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
commitd8d9b8f76f22b7a16a83e261e64f89ee611f49df (patch)
tree3067bc130b80d52808e6390c9fc7fc087ec1e33c /fs/pipe.c
parent19c9bba94152148523ba0f7ef7cffe3d45656b11 (diff)
Initial revision
Diffstat (limited to 'fs/pipe.c')
-rw-r--r--fs/pipe.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/pipe.c b/fs/pipe.c
index 9cf3c7a6d..5fa5d6e91 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -11,6 +11,7 @@
#include <linux/fcntl.h>
#include <linux/termios.h>
#include <linux/mm.h>
+#include <linux/file.h>
#include <asm/poll.h>
#include <asm/uaccess.h>
@@ -74,7 +75,10 @@ static long pipe_read(struct inode * inode, struct file * filp,
PIPE_LOCK(*inode)--;
wake_up_interruptible(&PIPE_WAIT(*inode));
if (read) {
- inode->i_atime = CURRENT_TIME;
+ if (DO_UPDATE_ATIME(inode)) {
+ inode->i_atime = CURRENT_TIME;
+ inode->i_dirt = 1;
+ }
return read;
}
if (PIPE_WRITERS(*inode))
@@ -128,6 +132,7 @@ static long pipe_write(struct inode * inode, struct file * filp,
free = 1;
}
inode->i_ctime = inode->i_mtime = CURRENT_TIME;
+ inode->i_dirt = 1;
return written;
}
@@ -440,9 +445,9 @@ close_f12_inode:
inode->i_count--;
iput(inode);
close_f12:
- f2->f_count--;
+ put_filp(f2);
close_f1:
- f1->f_count--;
+ put_filp(f1);
no_files:
return error;
}