On Wed, 29 Dec 2010 21:58:41 +0800 yangsheng<sickamd@xxxxxxxxx> wrote:If atime has been set to future(maybe cause by some accident system time adjust or wrong set by touch). It cannot be update to reflect fact access time before system time running over one day.
Signed-off-by: sickamd@xxxxxxxxxWhy do you believe this change is needed? Did you observe some problem
---
fs/inode.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/fs/inode.c b/fs/inode.c
index da85e56..6c8effd 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1469,7 +1469,13 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
return 1;
/*
- * Is the previous atime value older than a day? If yes,
+ * Is the previous atime value in future? If yes,
+ * update atime:
+ */
+ if ((long)(now.tv_sec - inode->i_atime.tv_sec)< 0)
+ return 1;
+ /*
+ * Is the previous atime value old than a day? If yes,
* update atime:
*/
if ((long)(now.tv_sec - inode->i_atime.tv_sec)>= 24*60*60)
which it fixes? If so, please fully describe that problem.