summary refs log tree commit diff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-12-22 00:29:43 +0100
committerLudovic Courtès <ludo@gnu.org>2015-12-22 00:29:43 +0100
commitab64483f648756570f6e9d4027c3b4854e43921c (patch)
tree16e13c7e5f215556d110f585611755e2fc26550b /gnu/system.scm
parentbe21979d85304fedd5c0fb970ffc337d220eda7a (diff)
downloadguix-ab64483f648756570f6e9d4027c3b4854e43921c.tar.gz
file-systems: The 'device' field can be a UUID (bytevector).
Previously a wrong-type-arg error would be raised when a file system
with a UUID (bytevector) field was encountered.

* gnu/system.scm (other-file-system-services)[device-mappings]: Check
whether FS's device is a string.
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm13
1 files changed, 8 insertions, 5 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index 2b8821443a..6f7500f93a 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -192,11 +192,14 @@ as 'needed-for-boot'."
             (operating-system-file-systems os)))
 
   (define (device-mappings fs)
-    (filter (lambda (md)
-              (string=? (string-append "/dev/mapper/"
-                                       (mapped-device-target md))
-                        (file-system-device fs)))
-            (operating-system-mapped-devices os)))
+    (let ((device (file-system-device fs)))
+      (if (string? device)
+          (filter (lambda (md)
+                    (string=? (string-append "/dev/mapper/"
+                                             (mapped-device-target md))
+                              device))
+                  (operating-system-mapped-devices os))
+          '())))
 
   (define (add-dependencies fs)
     ;; Add the dependencies due to device mappings to FS.