From: Karel Zak Date: Mon, 30 Mar 2015 10:43:45 +0000 (+0200) Subject: libmount: add support for MS_LAZYTIME X-Git-Tag: v2.27-rc1~296 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c7f073aaeaad3ab9b1775447306776056bf50b8;p=thirdparty%2Futil-linux.git libmount: add support for MS_LAZYTIME Signed-off-by: Karel Zak --- diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in index 30dc06b698..2338cc604f 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 5b25b8f292..3ad77273e3 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 fac4b0c9b5..aaf6b39fd6 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.