syscalls: Define 'MS_NODIRATIME' and recognize "nodiratime".

Fixes <https://issues.guix.gnu.org/58663>.

This is a followup to b665dd4a99 and
dcb640f02b, 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.
This commit is contained in:
Ludovic Courtès 2022-10-20 21:16:49 +02:00
parent 4056cd9480
commit 6352e3a17b
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -46,6 +46,7 @@ (define-module (guix build syscalls)
MS_NOEXEC
MS_REMOUNT
MS_NOATIME
MS_NODIRATIME
MS_STRICTATIME
MS_RELATIME
MS_BIND
@ -537,6 +538,7 @@ (define MS_NODEV 4)
(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 @@ (define lst
("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 @@ (define (statfs-flags->mount-flags flags)
(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>