file-systems: Add a 'dependencies' field to <file-system>.
* gnu/system/file-systems.scm (<file-system>)[dependencies]: New field. * gnu/system.scm (other-file-system-services)[requirements]: Honor 'file-system-dependencies'. * doc/guix.texi (File Systems): Document it.
This commit is contained in:
parent
97121c2a21
commit
e51710d1ef
|
@ -5027,6 +5027,14 @@ errors before being mounted.
|
||||||
@item @code{create-mount-point?} (default: @code{#f})
|
@item @code{create-mount-point?} (default: @code{#f})
|
||||||
When true, the mount point is created if it does not exist yet.
|
When true, the mount point is created if it does not exist yet.
|
||||||
|
|
||||||
|
@item @code{dependencies} (default: @code{'()})
|
||||||
|
This is a list of @code{<file-system>} objects representing file systems
|
||||||
|
that must be mounted before (and unmounted after) this one.
|
||||||
|
|
||||||
|
As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is
|
||||||
|
a dependency of @file{/sys/fs/cgroup/cpu} and
|
||||||
|
@file{/sys/fs/cgroup/memory}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
|
|
@ -228,10 +228,16 @@ as 'needed-for-boot'."
|
||||||
(operating-system-mapped-devices os)))
|
(operating-system-mapped-devices os)))
|
||||||
|
|
||||||
(define (requirements fs)
|
(define (requirements fs)
|
||||||
|
;; XXX: Fiddling with dmd service names is not nice.
|
||||||
|
(append (map (lambda (fs)
|
||||||
|
(symbol-append 'file-system-
|
||||||
|
(string->symbol
|
||||||
|
(file-system-mount-point fs))))
|
||||||
|
(file-system-dependencies fs))
|
||||||
(map (lambda (md)
|
(map (lambda (md)
|
||||||
(symbol-append 'device-mapping-
|
(symbol-append 'device-mapping-
|
||||||
(string->symbol (mapped-device-target md))))
|
(string->symbol (mapped-device-target md))))
|
||||||
(device-mappings fs)))
|
(device-mappings fs))))
|
||||||
|
|
||||||
(sequence %store-monad
|
(sequence %store-monad
|
||||||
(map (lambda (fs)
|
(map (lambda (fs)
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
file-system-options
|
file-system-options
|
||||||
file-system-check?
|
file-system-check?
|
||||||
file-system-create-mount-point?
|
file-system-create-mount-point?
|
||||||
|
file-system-dependencies
|
||||||
|
|
||||||
file-system->spec
|
file-system->spec
|
||||||
string->uuid
|
string->uuid
|
||||||
|
@ -97,7 +98,10 @@
|
||||||
(check? file-system-check? ; Boolean
|
(check? file-system-check? ; Boolean
|
||||||
(default #t))
|
(default #t))
|
||||||
(create-mount-point? file-system-create-mount-point? ; Boolean
|
(create-mount-point? file-system-create-mount-point? ; Boolean
|
||||||
(default #f)))
|
(default #f))
|
||||||
|
(dependencies file-system-dependencies ; list of strings (mount
|
||||||
|
; points depended on)
|
||||||
|
(default '())))
|
||||||
|
|
||||||
(define-inlinable (file-system-needed-for-boot? fs)
|
(define-inlinable (file-system-needed-for-boot? fs)
|
||||||
"Return true if FS has the 'needed-for-boot?' flag set, or if it's the root
|
"Return true if FS has the 'needed-for-boot?' flag set, or if it's the root
|
||||||
|
|
Loading…
Reference in New Issue