aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2022-07-19 19:40:28 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2022-08-10 07:12:25 +0300
commit4b494878380920c8c7eecccd1f299164dd4a2c3f (patch)
tree04c7bb62fd257570ce6a5fb2a28f2a9b38811139 /gnu
parent97cb43e732a38758c95b7caf3963507188d011cf (diff)
downloadguix-4b494878380920c8c7eecccd1f299164dd4a2c3f.tar.gz
guix-4b494878380920c8c7eecccd1f299164dd4a2c3f.zip
gnu: system: file-systems: Add shared flag.
* gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system): Handle shared flag. * gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known flags. * guix/build/syscalls.scm (MS_SHARED): New variable. * doc/guix.texi (File Systems): Document shared flag.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm6
-rw-r--r--gnu/system/file-systems.scm4
2 files changed, 9 insertions, 1 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 1d3b33e7bd..b9d46c9350 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1123,6 +1124,8 @@ corresponds to the symbols listed in FLAGS."
(logior MS_STRICTATIME (loop rest)))
(('lazy-time rest ...)
(logior MS_LAZYTIME (loop rest)))
+ (('shared rest ...)
+ (loop rest))
(()
0))))
@@ -1186,6 +1189,9 @@ corresponds to the symbols listed in FLAGS."
(cond
((string-prefix? "nfs" type)
(mount-nfs source target type flags options))
+ ((memq 'shared (file-system-flags fs))
+ (mount source target type flags options)
+ (mount "none" target #f MS_SHARED))
(else
(mount source target type flags options)))
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index f8f4276283..464b76a2ca 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -121,7 +122,8 @@
;; Note: Keep in sync with 'mount-flags->bit-mask'.
(let ((known-flags '(read-only
bind-mount no-suid no-dev no-exec
- no-atime strict-atime lazy-time)))
+ no-atime strict-atime lazy-time
+ shared)))
(lambda (flags)
"Return the subset of FLAGS that is invalid."
(remove (cut memq <> known-flags) flags))))