guix-commits
[Top][All Lists]
Advanced

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

08/09: file-systems: 'file-system-needed-for-boot?' always returns #t fo


From: Ludovic Courtès
Subject: 08/09: file-systems: 'file-system-needed-for-boot?' always returns #t for "/".
Date: Tue, 25 Nov 2014 17:02:50 +0000

civodul pushed a commit to branch master
in repository guix.

commit 4d6b879cb5313c30910330763dca1f1642623c4d
Author: Ludovic Courtès <address@hidden>
Date:   Tue Nov 25 16:01:21 2014 +0100

    file-systems: 'file-system-needed-for-boot?' always returns #t for "/".
    
    Reported by Nikita Karetnikov.
    
    * gnu/system/file-systems.scm (<file-system>): Rename 'needed-for-boot?'
      accessor to '%file-system-needed-for-boot?'.
      (file-system-needed-for-boot?): New inlinable procedure.
    * gnu/system.scm (other-file-system-services)[file-systems]: Rely on
      'file-system-needed-for-boot?' to handle the "/" case.
      (operating-system-initrd-file)[boot-file-systems]: Likewise.
---
 gnu/system.scm              |   11 ++---------
 gnu/system/file-systems.scm |    8 +++++++-
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index f98aa83..5c915d3 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -204,9 +204,7 @@ file."
   "Return file system services for the file systems of OS that are not marked
 as 'needed-for-boot'."
   (define file-systems
-    (remove (lambda (fs)
-              (or (file-system-needed-for-boot? fs)
-                  (string=? "/" (file-system-mount-point fs))))
+    (remove file-system-needed-for-boot?
             (operating-system-file-systems os)))
 
   (define (device-mappings fs)
@@ -638,12 +636,7 @@ we're running in the final root."
 (define (operating-system-initrd-file os)
   "Return a gexp denoting the initrd file of OS."
   (define boot-file-systems
-    (filter (match-lambda
-             (($ <file-system> device title "/")
-              #t)
-             (($ <file-system> device title mount-point type flags
-                               options boot?)
-              boot?))
+    (filter file-system-needed-for-boot?
             (operating-system-file-systems os)))
 
   (define mapped-devices
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index ed9d705..4760821 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -70,13 +70,19 @@
                     (default '()))
   (options          file-system-options           ; string or #f
                     (default #f))
-  (needed-for-boot? file-system-needed-for-boot?  ; Boolean
+  (needed-for-boot? %file-system-needed-for-boot? ; Boolean
                     (default #f))
   (check?           file-system-check?            ; Boolean
                     (default #t))
   (create-mount-point? file-system-create-mount-point? ; Boolean
                        (default #f)))
 
+(define-inlinable (file-system-needed-for-boot? fs)
+  "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root
+file system."
+  (or (%file-system-needed-for-boot? fs)
+      (string=? "/" (file-system-mount-point fs))))
+
 (define %fuse-control-file-system
   ;; Control file system for Linux' file systems in user-space (FUSE).
   (file-system



reply via email to

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