diff -Nru linux-old/mm/filemap.c linux-new/mm/filemap.c
--- linux-old/mm/filemap.c	2002-10-23 20:58:12.000000000 -0400
+++ linux-new/mm/filemap.c	2002-10-23 21:14:06.000000000 -0400
@@ -2981,6 +2981,14 @@
 	}
 }
 
+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. 
  *
@@ -3113,8 +3121,7 @@
 		goto out;
 
 	remove_suid(inode);
-	inode->i_ctime = inode->i_mtime = CURRENT_TIME;
-	mark_inode_dirty_sync(inode);
+	update_inode_times(inode);
 
 	if (file->f_flags & O_DIRECT)
 		goto o_direct;
