%patch
Index: linux.d/mm/filemap.c
===================================================================
--- linux.d.orig/mm/filemap.c	2003-12-03 19:58:05.000000000 -0500
+++ linux.d/mm/filemap.c	2003-12-03 19:58:05.000000000 -0500
@@ -3095,6 +3095,14 @@
 	return err;
 }
 
+static void update_inode_times(struct inode *inode) 
+{
+	time_t now = CURRENT_TIME;
+	if (inode->i_ctime != now || inode->i_mtime != now) {
+	    inode->i_ctime = inode->i_mtime = now;
+	    mark_inode_dirty_sync(inode);
+	} 
+}
 /*
  * Write to a file through the page cache. 
  *
@@ -3253,8 +3261,7 @@
 		BUG();
 
 	remove_suid(inode);
-	inode->i_ctime = inode->i_mtime = CURRENT_TIME;
-	mark_inode_dirty_sync(inode);
+	update_inode_times(inode);
 
 	written = generic_file_direct_IO(WRITE, file, (char *) buf, count, pos);
 	if (written > 0) {

