nckx pushed a commit to branch master
in repository guix.
commit b6269fb7bcd2ef7adfb90b148492bb7a62336f92
Author: Tobias Geerinckx-Rice <[email protected]>
AuthorDate: Tue May 4 11:39:08 2021 +0200
file-systems: Handle abnormal ‘bcachefs fsck’ exits.
* gnu/build/file-systems.scm (check-bcachefs-file-system): Handle a
STATUS:EXIT-VAL of #F.
---
gnu/build/file-systems.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 6111cd7..23ff25d 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2016, 2017 David Craven <[email protected]>
;;; Copyright © 2017 Mathieu Othacehe <[email protected]>
;;; Copyright © 2019 Guillaume Le Vaillant <[email protected]>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <[email protected]>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <[email protected]>
;;; Copyright © 2019 David C. Trudgian <[email protected]>
;;; Copyright © 2020 Maxim Cournoyer <[email protected]>
;;;
@@ -264,11 +264,12 @@ bytevector."
"Return the health of a bcachefs file system on DEVICE."
(let ((ignored-bits (logior 2)) ; DEVICE was mounted read-only
(status
+ ;; A number, or #f on abnormal termination (e.g., assertion failure).
(status:exit-val
(apply system* "bcachefs" "fsck" "-p" "-v"
;; Make each multi-device member a separate argument.
(string-split device #\:)))))
- (match (logand (lognot ignored-bits) status)
+ (match (and=> status (cut logand <> (lognot ignored-bits)))
(0 'pass)
(1 'errors-corrected)
(_ 'fatal-error))))