From: Anton Blanchard <anton@samba.org>

Update ctime/mtime in libfs where appropriate.
 



---

 fs/libfs.c |    7 +++++++
 1 files changed, 7 insertions(+)

diff -puN fs/libfs.c~libfs_timestamp_fixes fs/libfs.c
--- 25/fs/libfs.c~libfs_timestamp_fixes	2004-01-21 11:00:32.000000000 -0800
+++ 25-akpm/fs/libfs.c	2004-01-21 11:00:32.000000000 -0800
@@ -227,6 +227,7 @@ int simple_link(struct dentry *old_dentr
 {
 	struct inode *inode = old_dentry->d_inode;
 
+	inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
 	inode->i_nlink++;
 	atomic_inc(&inode->i_count);
 	dget(dentry);
@@ -258,6 +259,7 @@ int simple_unlink(struct inode *dir, str
 {
 	struct inode *inode = dentry->d_inode;
 
+	inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
 	inode->i_nlink--;
 	dput(dentry);
 	return 0;
@@ -277,6 +279,7 @@ int simple_rmdir(struct inode *dir, stru
 int simple_rename(struct inode *old_dir, struct dentry *old_dentry,
 		struct inode *new_dir, struct dentry *new_dentry)
 {
+	struct inode *inode = old_dentry->d_inode;
 	int they_are_dirs = S_ISDIR(old_dentry->d_inode->i_mode);
 
 	if (!simple_empty(new_dentry))
@@ -290,6 +293,10 @@ int simple_rename(struct inode *old_dir,
 		old_dir->i_nlink--;
 		new_dir->i_nlink++;
 	}
+
+	old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime =
+		new_dir->i_mtime = inode->i_ctime = CURRENT_TIME;
+
 	return 0;
 }
 

_