Update relatime comments to include equality
authorStephen Kitt <steve@sk2.org>
Sat, 25 Mar 2023 08:22:32 +0000 (09:22 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 27 Mar 2023 11:51:32 +0000 (13:51 +0200)
relatime also updates atime if the previous atime is equal to one or
both of the ctime and mtime; a non-strict interpretation of "earlier
than" and "younger than" in the comments allows this, but for clarity,
this makes it explicit.

Pointed out by "epiii2" and "ctrl-alt-delor" in
https://unix.stackexchange.com/q/740862/86440.

Signed-off-by: Stephen Kitt <steve@sk2.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/inode.c

index 4558dc2..3ec5a8f 100644 (file)
@@ -1804,8 +1804,8 @@ EXPORT_SYMBOL(bmap);
 
 /*
  * With relative atime, only update atime if the previous atime is
- * earlier than either the ctime or mtime or if at least a day has
- * passed since the last atime update.
+ * earlier than or equal to either the ctime or mtime,
+ * or if at least a day has passed since the last atime update.
  */
 static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
                             struct timespec64 now)
@@ -1814,12 +1814,12 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
        if (!(mnt->mnt_flags & MNT_RELATIME))
                return 1;
        /*
-        * Is mtime younger than atime? If yes, update atime:
+        * Is mtime younger than or equal to atime? If yes, update atime:
         */
        if (timespec64_compare(&inode->i_mtime, &inode->i_atime) >= 0)
                return 1;
        /*
-        * Is ctime younger than atime? If yes, update atime:
+        * Is ctime younger than or equal to atime? If yes, update atime:
         */
        if (timespec64_compare(&inode->i_ctime, &inode->i_atime) >= 0)
                return 1;