diff options
-rw-r--r-- | libmount/src/libmount.h.in | 4 | ||||
-rw-r--r-- | libmount/src/optmap.c | 4 | ||||
-rw-r--r-- | sys-utils/mount.8 | 27 |
3 files changed, 35 insertions, 0 deletions
diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in index 30dc06b69..2338cc604 100644 --- a/libmount/src/libmount.h.in +++ b/libmount/src/libmount.h.in @@ -832,6 +832,10 @@ extern int mnt_context_set_syscall_status(struct libmnt_context *cxt, int status #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. diff --git a/libmount/src/optmap.c b/libmount/src/optmap.c index 5b25b8f29..3ad77273e 100644 --- a/libmount/src/optmap.c +++ b/libmount/src/optmap.c @@ -113,6 +113,10 @@ static const struct libmnt_optmap linux_flags_map[] = { "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 }, diff --git a/sys-utils/mount.8 b/sys-utils/mount.8 index fac4b0c9b..aaf6b39fd 100644 --- a/sys-utils/mount.8 +++ b/sys-utils/mount.8 @@ -1043,6 +1043,33 @@ system mount options see /proc/mounts. .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. |