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

OpenSubmitted by Danny Milosavljevic.
Details
2 participants
  • Danny Milosavljevic
  • Tobias Geerinckx-Rice
Owner
unassigned
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-----

?