[PATCH] ocfs2: relative atime support
authorMark Fasheh <mark.fasheh@oracle.com>
Wed, 13 Dec 2006 08:34:35 +0000 (00:34 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Wed, 13 Dec 2006 17:05:50 +0000 (09:05 -0800)
Update ocfs2_should_update_atime() to understand the MNT_RELATIME flag and
to test against mtime / ctime accordingly.

[akpm@osdl.org: cleanups]
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Valerie Henson <val_henson@linux.intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/ocfs2/file.c

index e9a82ad95c1e234fb4cc439f482d79d346ccd4f1..9fd590b9bde3d69a403902cd60f228e92eea87f6 100644 (file)
@@ -153,6 +153,14 @@ int ocfs2_should_update_atime(struct inode *inode,
            ((vfsmnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode)))
                return 0;
 
+       if (vfsmnt->mnt_flags & MNT_RELATIME) {
+               if ((timespec_compare(&inode->i_atime, &inode->i_mtime) <= 0) ||
+                   (timespec_compare(&inode->i_atime, &inode->i_ctime) <= 0))
+                       return 1;
+
+               return 0;
+       }
+
        now = CURRENT_TIME;
        if ((now.tv_sec - inode->i_atime.tv_sec <= osb->s_atime_quantum))
                return 0;