[PATCH] file-systems: Support the 'rel-atime' flag.

  • Open
  • quality assurance status badge
Details
2 participants
  • Danny Milosavljevic
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Danny Milosavljevic
Severity
normal
D
D
Danny Milosavljevic wrote on 29 Apr 2019 20:56
(address . guix-patches@gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20190429185610.14475-1-dannym@scratchpost.org
* guix/build/syscalls.scm (MS_RELATIME): New variable.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Support it.
* doc/guix.texi (File Systems): Document it.
---
doc/guix.texi | 9 ++++++---
gnu/build/file-systems.scm | 2 ++
guix/build/syscalls.scm | 2 ++
3 files changed, 10 insertions(+), 3 deletions(-)

Toggle diff (53 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index fcee57d9cd..20c9b570c9 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10756,9 +10756,12 @@ corresponding device mapping established.
This is a list of symbols denoting mount flags. Recognized flags
include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow
access to special files), @code{no-suid} (ignore setuid and setgid
-bits), @code{no-atime} (do not update file access times), and @code{no-exec}
-(disallow program execution). @xref{Mount-Unmount-Remount,,, libc, The GNU C
-Library Reference Manual}, for more information on these flags.
+bits), @code{no-atime} (do not update file access times),
+@code{rel-atime} (update file access time minimally), and
+@code{no-exec} (disallow program execution).
+
+@xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual},
+for more information on these flags.
@item @code{options} (default: @code{#f})
This is either @code{#f}, or a string denoting mount options passed to the
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 8bb10d574d..06fdf0ccd8 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -577,6 +577,8 @@ corresponds to the symbols listed in FLAGS."
(logior MS_NOEXEC (loop rest)))
(('no-atime rest ...)
(logior MS_NOATIME (loop rest)))
+ (('rel-atime rest ...)
+ (logior MS_RELATIME (loop rest)))
(()
0))))
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 3316dc8dc5..5039003bcb 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -40,6 +40,7 @@
MS_NOEXEC
MS_REMOUNT
MS_NOATIME
+ MS_RELATIME
MS_BIND
MS_MOVE
MS_STRICTATIME
@@ -455,6 +456,7 @@ the returned procedure is called."
(define MS_NOATIME 1024)
(define MS_BIND 4096)
(define MS_MOVE 8192)
+(define MS_RELATIME 2097152)
(define MS_STRICTATIME 16777216)
(define MNT_FORCE 1)
T
T
Tobias Geerinckx-Rice wrote on 29 Apr 2019 21:23
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 35494@debbugs.gnu.org)
871s1kvcni.fsf@nckx
Danny,

Danny Milosavljevic wrote:
Toggle quote (29 lines)
> * guix/build/syscalls.scm (MS_RELATIME): New variable.
> * gnu/build/file-systems.scm (mount-flags->bit-mask): Support
> it.
> * doc/guix.texi (File Systems): Document it.
> ---
> doc/guix.texi | 9 ++++++---
> gnu/build/file-systems.scm | 2 ++
> guix/build/syscalls.scm | 2 ++
> 3 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index fcee57d9cd..20c9b570c9 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -10756,9 +10756,12 @@ corresponding device mapping
> established.
> This is a list of symbols denoting mount flags. Recognized
> flags
> include @code{read-only}, @code{bind-mount}, @code{no-dev}
> (disallow
> access to special files), @code{no-suid} (ignore setuid and
> setgid
> -bits), @code{no-atime} (do not update file access times), and
> @code{no-exec}
> -(disallow program execution). @xref{Mount-Unmount-Remount,,,
> libc, The GNU C
> -Library Reference Manual}, for more information on these flags.
> +bits), @code{no-atime} (do not update file access times),
> +@code{rel-atime} (update file access time minimally), and
^^^^^^^^^

That's a great way to explain it in 5 words, but note that there's
also ‘lazytime’ which does the same thing, only slightly less so
:-)

(How about adding that, too?)

MHO: since we're adding a hyphen and not blindly following
upstream already, I think the symbol itself should be
‘relative-atime’. Abbrevs r meh.

Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXMdPQQAKCRANsP+IT1Vt
eVIlAQDyWSn8ndcW8bGQfDe/lwby6UebxPpHGVeqwYHcfYFhsgEA/WjB19Nw5RQt
NAmk/JRIpk6jOWECa1nfn1RvNNnl+QY=
=je61
-----END PGP SIGNATURE-----

?