patch-2.1.37 linux/fs/pipe.c

Next file: linux/fs/proc/array.c
Previous file: linux/fs/open.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.36/linux/fs/pipe.c linux/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 @@
 	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 @@
 		free = 1;
 	}
 	inode->i_ctime = inode->i_mtime = CURRENT_TIME;
+	inode->i_dirt = 1;
 	return written;
 }
 
@@ -440,9 +445,9 @@
 	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;	
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov