summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/system.scm10
-rw-r--r--gnu/system/mapped-devices.scm16
2 files changed, 8 insertions, 18 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index b1454b262d5..768ca9cab21 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -233,15 +233,7 @@ from the initrd."
233 233
234(define (device-mapping-services os) 234(define (device-mapping-services os)
235 "Return the list of device-mapping services for OS as a list." 235 "Return the list of device-mapping services for OS as a list."
236 (map (lambda (md) 236 (map device-mapping-service
237 (let* ((source (mapped-device-source md))
238 (target (mapped-device-target md))
239 (type (mapped-device-type md))
240 (open (mapped-device-kind-open type))
241 (close (mapped-device-kind-close type)))
242 (device-mapping-service target
243 (open source target)
244 (close source target))))
245 (operating-system-user-mapped-devices os))) 237 (operating-system-user-mapped-devices os)))
246 238
247(define (swap-services os) 239(define (swap-services os)
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index be2d6a4749d..2706e255c53 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -69,21 +69,19 @@
69 (shepherd-service-type 69 (shepherd-service-type
70 'device-mapping 70 'device-mapping
71 (match-lambda 71 (match-lambda
72 ((target open close) 72 (($ <mapped-device> source target
73 ($ <mapped-device-type> open close))
73 (shepherd-service 74 (shepherd-service
74 (provision (list (symbol-append 'device-mapping- (string->symbol target)))) 75 (provision (list (symbol-append 'device-mapping- (string->symbol target))))
75 (requirement '(udev)) 76 (requirement '(udev))
76 (documentation "Map a device node using Linux's device mapper.") 77 (documentation "Map a device node using Linux's device mapper.")
77 (start #~(lambda () #$open)) 78 (start #~(lambda () #$(open source target)))
78 (stop #~(lambda _ (not #$close))) 79 (stop #~(lambda _ (not #$(close source target))))
79 (respawn? #f)))))) 80 (respawn? #f))))))
80 81
81(define (device-mapping-service target open close) 82(define (device-mapping-service mapped-device)
82 "Return a service that maps device @var{target}, a string such as 83 "Return a service that sets up @var{mapped-device}."
83@code{\"home\"} (meaning @code{/dev/mapper/home}). Evaluate @var{open}, a 84 (service device-mapping-service-type mapped-device))
84gexp, to open it, and evaluate @var{close} to close it."
85 (service device-mapping-service-type
86 (list target open close)))
87 85
88 86
89;;; 87;;;