#ifndef MS_STRICTATIME
#define MS_STRICTATIME (1<<24) /* Always perform atime updates */
#endif
+#ifndef MS_LAZYTIME
+#define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */
+#endif
+
/*
* Magic mount flag number. Had to be or-ed to the flag values.
{ "strictatime", MS_STRICTATIME }, /* Strict atime semantics */
{ "nostrictatime", MS_STRICTATIME, MNT_INVERT }, /* kernel default atime */
#endif
+#ifdef MS_LAZYTIME
+ { "lazytime", MS_LAZYTIME }, /* Update {a,m,c}time on the in-memory inode only */
+ { "nolazytime", MS_LAZYTIME, MNT_INVERT },
+#endif
#ifdef MS_PROPAGATION
{ "unbindable", MS_UNBINDABLE, MNT_NOHLPS | MNT_NOMTAB }, /* Unbindable */
{ "runbindable", MS_UNBINDABLE | MS_REC, MNT_NOHLPS | MNT_NOMTAB },
.B nostrictatime
Use the kernel's default behavior for inode access time updates.
.TP
+.B lazytime
+Only update times (atime, mtime, ctime) on the in-memory version of the file inode.
+
+This mount option significantly reduces writes to the inode table for
+workloads that perform frequent random writes to preallocated files.
+As at Linux 3.20, this option is supported only on ext4.
+
+The on-disk timestamps are updated only when:
+.sp
+.RS
+- the inode needs to be updated for some change unrelated to file timestamps
+.sp
+- the application employs
+.BR fsync (2),
+.BR syncfs (2),
+or
+.BR sync (2)
+.sp
+- an undeleted inode is evicted from memory
+.sp
+- more than 24 hours have passed since the i-node was written to disk.
+.RE
+.sp
+.TP
+.B nolazytime
+Do not use the nolazytime feature.
+.TP
.B suid
Allow set-user-identifier or set-group-identifier bits to take
effect.