]> err.no Git - util-linux/commitdiff
mount: relative atime support
authorValerie Henson <val_henson@linux.intel.com>
Sat, 9 Dec 2006 03:15:14 +0000 (19:15 -0800)
committerKarel Zak <kzak@redhat.com>
Wed, 4 Apr 2007 22:29:55 +0000 (00:29 +0200)
Add the "relatime" (relative atime) option support to mount.  Relative
atime only updates the atime if the previous atime is older than the
mtime or ctime.  Like noatime, but useful for applications like mutt
that need to know when a file has been read since it was last
modified.

Cc: Adrian Bunk <bunk@stusta.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Karel Zak <kzak@redhat.com>
Signed-off-by: Valerie Henson <val_henson@linux.intel.com>
mount/mount.8
mount/mount.c
mount/mount_constants.h

index 870cfd13e7b46a641520062cf70214c879603348..2d7c21896ad4fb2c2c7e63a00375e6b7d633760c 100644 (file)
@@ -621,6 +621,13 @@ access on the news spool to speed up news servers).
 .B nodiratime
 Do not update directory inode access times on this filesystem.
 .TP
+.B relatime
+Update inode access times relative to modify or change time.  Access
+time is only updated if the previous access time was earlier than the
+current modify or change time. (Similar to noatime, but doesn't break
+mutt or other applications that need to know if a file has been read
+since the last time it was modified.)
+.TP
 .B noauto
 Can only be mounted explicitly (i.e., the
 .B \-a
index 1d179b72a23c4f93ec0bcb17cb7cc89b06da8534..63e6731352649a03ef34fea119b2d8accc0eb57b 100644 (file)
@@ -177,6 +177,12 @@ static const struct opt_map opt_map[] = {
 #ifdef MS_NODIRATIME
   { "diratime",        0, 1, MS_NODIRATIME },  /* Update dir access times */
   { "nodiratime", 0, 0, MS_NODIRATIME },/* Do not update dir access times */
+#endif
+#ifdef MS_RELATIME
+  { "relatime",        0, 0, MS_RELATIME },   /* Update access times relative to
+                                         mtime/ctime */
+  { "norelatime", 0, 1, MS_RELATIME }, /* Update access time without regard
+                                         to mtime/ctime */
 #endif
   { NULL,      0, 0, 0         }
 };
index 5c3897f81165eec9e82ddc59c091b5894490f6f8..dc3ca274fe3cee698071488d640fac7de3b5613c 100644 (file)
@@ -57,6 +57,10 @@ if we have a stack or plain mount - mount atop of it, forming a stack. */
 #ifndef MS_VERBOSE
 #define MS_VERBOSE     0x8000  /* 32768 */
 #endif
+#ifndef MS_RELATIME
+#define MS_RELATIME    0x200000 /* 200000: Update access times relative
+                                  to mtime/ctime */
+#endif
 #ifndef MS_UNBINDABLE
 #define MS_UNBINDABLE  (1<<17) /* 131072 unbindable*/
 #endif