%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) {