guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: file-systems: Fix ‘bcachefs fsck’ exit value logic.


From: guix-commits
Subject: 01/02: file-systems: Fix ‘bcachefs fsck’ exit value logic.
Date: Sun, 6 Dec 2020 10:43:33 -0500 (EST)

nckx pushed a commit to branch master
in repository guix.

commit 23be018d4fe1150ca81efb3572cd695a9044b80d
Author: Tobias Geerinckx-Rice <me@tobias.gr>
AuthorDate: Sun Dec 6 11:14:48 2020 +0100

    file-systems: Fix ‘bcachefs fsck’ exit value logic.
    
    Bit 1 means the target device was mounted read-only whilst checking.
    This should never happen in an initrd context but is not an error.
    
    * gnu/build/file-systems.scm (check-bcachefs-file-system): Ignore status
    bits that don't signal an error.  Remove the 'reboot-required case.
---
 gnu/build/file-systems.scm | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index b762e82..ddf6117 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -262,14 +262,16 @@ bytevector."
 
 (define (check-bcachefs-file-system device)
   "Return the health of a bcachefs file system on DEVICE."
-  (match (status:exit-val
+  (let ((ignored-bits (logior 2))       ; DEVICE was mounted read-only
+        (status
+         (status:exit-val
           (apply system* "bcachefs" "fsck" "-p" "-v"
                  ;; Make each multi-device member a separate argument.
-                 (string-split device #\:)))
-    (0 'pass)
-    (1 'errors-corrected)
-    (2 'reboot-required)
-    (_ 'fatal-error)))
+                 (string-split device #\:)))))
+    (match (logand (lognot ignored-bits) status)
+      (0 'pass)
+      (1 'errors-corrected)
+      (_ 'fatal-error))))
 
 
 ;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]