diff options
| -rw-r--r-- | gnu/system.scm | 10 | ||||
| -rw-r--r-- | gnu/system/mapped-devices.scm | 16 |
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)) |
| 84 | gexp, 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 | ;;; |
