diff options
Diffstat (limited to 'gnu/system/mapped-devices.scm')
| -rw-r--r-- | gnu/system/mapped-devices.scm | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 1cfd6492787..2a0706e50b0 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm | |||
| @@ -128,20 +128,24 @@ | |||
| 128 | (open open-luks-device) | 128 | (open open-luks-device) |
| 129 | (close close-luks-device))) | 129 | (close close-luks-device))) |
| 130 | 130 | ||
| 131 | (define (open-raid-device source target) | 131 | (define (open-raid-device sources target) |
| 132 | "Return a gexp that assembles SOURCE (a list of devices) to the RAID device | 132 | "Return a gexp that assembles SOURCES (a list of devices) to the RAID device |
| 133 | TARGET, using 'mdadm'." | 133 | TARGET (e.g., \"/dev/md0\"), using 'mdadm'." |
| 134 | #~(let ((every (@ (srfi srfi-1) every))) | 134 | #~(begin |
| 135 | (let loop () | 135 | (use-modules (srfi srfi-1) (ice-9 format)) |
| 136 | (unless (every file-exists? '#$source) | 136 | |
| 137 | (format #t "waiting a bit...~%") | 137 | (let ((sources '#$sources)) |
| 138 | (sleep 1) | 138 | (let loop () |
| 139 | (loop))) | 139 | (unless (every file-exists? sources) |
| 140 | (zero? (system* (string-append #$mdadm "/sbin/mdadm") | 140 | (format #t "waiting for RAID source devices~{ ~a~}...~%" |
| 141 | "--assemble" #$target | 141 | sources) |
| 142 | #$@source)))) | 142 | (sleep 1) |
| 143 | 143 | (loop))) | |
| 144 | (define (close-raid-device source target) | 144 | |
| 145 | (zero? (system* (string-append #$mdadm "/sbin/mdadm") | ||
| 146 | "--assemble" #$target sources))))) | ||
| 147 | |||
| 148 | (define (close-raid-device sources target) | ||
| 145 | "Return a gexp that stops the RAID device TARGET." | 149 | "Return a gexp that stops the RAID device TARGET." |
| 146 | #~(zero? (system* (string-append #$mdadm "/sbin/mdadm") | 150 | #~(zero? (system* (string-append #$mdadm "/sbin/mdadm") |
| 147 | "--stop" #$target))) | 151 | "--stop" #$target))) |
