file-systems: Improve error handling in the iso9660 case - fixes boot problem.

* gnu/build/file-systems.scm (read-iso9660-superblock): Modify.
This commit is contained in:
Danny Milosavljevic 2017-06-03 19:55:57 +02:00
parent b92e8da0a8
commit fb03f44bb1
No known key found for this signature in database
GPG key ID: E71A35542C30BAA5

View file

@ -260,7 +260,11 @@ (define (read-iso9660-superblock device)
"Return the raw contents of DEVICE's iso9660 primary volume descriptor "Return the raw contents of DEVICE's iso9660 primary volume descriptor
as a bytevector, or #f if DEVICE does not contain an iso9660 file system." as a bytevector, or #f if DEVICE does not contain an iso9660 file system."
;; Start reading at sector 16. ;; Start reading at sector 16.
(read-iso9660-primary-volume-descriptor device (* 2048 16))) ;; Since we are not sure that the device contains an ISO9660 filesystem,
;; we have to find that out first.
(if (read-superblock device (* 2048 16) 2048 iso9660-superblock?)
(read-iso9660-primary-volume-descriptor device (* 2048 16))
#f)) ; Device does not contain an iso9660 filesystem.
(define (iso9660-superblock-uuid sblock) (define (iso9660-superblock-uuid sblock)
"Return the modification time of an iso9660 primary volume descriptor "Return the modification time of an iso9660 primary volume descriptor