diff mbox series

[bug#35494] file-systems: Support the 'rel-atime' flag.

Message ID 20190429185610.14475-1-dannym@scratchpost.org
State Accepted
Headers show
Series [bug#35494] file-systems: Support the 'rel-atime' flag. | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Danny Milosavljevic April 29, 2019, 6:56 p.m. UTC
* 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(-)

Comments

Tobias Geerinckx-Rice April 29, 2019, 7:23 p.m. UTC | #1
Danny,

Danny Milosavljevic wrote:
> * 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
diff mbox series

Patch

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)