--- linux-2.6.13-vs2.0.1/include/linux/fs.h 2005-08-29 22:42:14 +0200 +++ linux-2.6.13-vs2.0.1-bme0.06.1/include/linux/fs.h 2005-09-14 03:39:57 +0200 @@ -1087,8 +1088,16 @@ static inline void mark_inode_dirty_sync static inline void touch_atime(struct vfsmount *mnt, struct dentry *dentry) { - /* per-mountpoint checks will go here */ - update_atime(dentry->d_inode); + struct inode *inode = dentry->d_inode; + + if (MNT_IS_NOATIME(mnt)) + return; + if (S_ISDIR(inode->i_mode) && MNT_IS_NODIRATIME(mnt)) + return; + if (IS_RDONLY(inode) || MNT_IS_RDONLY(mnt)) + return; + + update_atime(inode); } static inline void file_accessed(struct file *file)