summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-10-20 21:16:49 +0200
committerLudovic Courtès <ludo@gnu.org>2022-10-20 23:07:37 +0200
commit6352e3a17b5978cf9af9e1668816d8f47ec85208 (patch)
tree967e5859cc2c71607ef53ee6fc582cd7169ddb9a
parent4056cd9480416f38e06f98fdf5acea7c82a4c886 (diff)
syscalls: Define 'MS_NODIRATIME' and recognize "nodiratime".
Fixes <https://issues.guix.gnu.org/58663>. This is a followup to b665dd4a9902b5722b9e06fd89c203e2221b19e0 and dcb640f02b1f9590c3bd4301a22bf31bd60c56d4, allowing "nodiratime" to be preserved for bind mounts. * guix/build/syscalls.scm (MS_NODIRATIME): New variable. (option-string->mount-flags): Recognize it. (statfs-flags->mount-flags): Likewise.
-rw-r--r--guix/build/syscalls.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 7842b0a9fc..61926beb80 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -46,6 +46,7 @@
MS_NOEXEC
MS_REMOUNT
MS_NOATIME
+ MS_NODIRATIME
MS_STRICTATIME
MS_RELATIME
MS_BIND
@@ -537,6 +538,7 @@ the last argument of `mknod'."
(define MS_NOEXEC 8)
(define MS_REMOUNT 32)
(define MS_NOATIME 1024)
+(define MS_NODIRATIME 2048)
(define MS_BIND 4096)
(define MS_MOVE 8192)
(define MS_SHARED 1048576)
@@ -640,7 +642,8 @@ the remaining unprocessed options."
("nodev" => MS_NODEV)
("noexec" => MS_NOEXEC)
("relatime" => MS_RELATIME)
- ("noatime" => MS_NOATIME)))))))
+ ("noatime" => MS_NOATIME)
+ ("nodiratime" => MS_NODIRATIME)))))))
(define (mount-flags mount)
"Return the mount flags of MOUNT, a <mount> record, as an inclusive or of
@@ -873,7 +876,7 @@ fdatasync(2) on the underlying file descriptor."
(ST_NODEV => MS_NODEV)
(ST_NOEXEC => MS_NOEXEC)
(ST_NOATIME => MS_NOATIME)
- (ST_NODIRATIME => 0) ;FIXME
+ (ST_NODIRATIME => MS_NODIRATIME)
(ST_RELATIME => MS_RELATIME))))
(define-c-struct %statfs ;<bits/statfs.h>