guix-commits
[Top][All Lists]
Advanced

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

01/04: linux-boot: Don't catch exceptions thrown by 'mount-root-file-sys


From: Ludovic Courtès
Subject: 01/04: linux-boot: Don't catch exceptions thrown by 'mount-root-file-system'.
Date: Thu, 20 Nov 2014 23:05:31 +0000

civodul pushed a commit to branch master
in repository guix.

commit 4dfbdcbcb4ed4ec82f032f7eff9133a3d04d5a95
Author: Ludovic Courtès <address@hidden>
Date:   Thu Nov 20 22:43:47 2014 +0100

    linux-boot: Don't catch exceptions thrown by 'mount-root-file-system'.
    
    * gnu/build/linux-boot.scm (mount-root-file-system): Remove 'catch #t'
      around body.  This was unneeded and even inconvenient because this
      procedure is called from within 'call-with-error-handling' already.
---
 gnu/build/linux-boot.scm |   60 ++++++++++++++++++++-------------------------
 1 files changed, 27 insertions(+), 33 deletions(-)

diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 001c52f..ea1971f 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -255,39 +255,33 @@ UNIONFS."
       (newline port)
       (close-port port)))
 
-  (catch #t
-    (lambda ()
-      (if volatile-root?
-          (begin
-            (mkdir-p "/real-root")
-            (mount root "/real-root" type MS_RDONLY)
-            (mkdir-p "/rw-root")
-            (mount "none" "/rw-root" "tmpfs")
-
-            ;; We want read-write /dev nodes.
-            (make-essential-device-nodes #:root "/rw-root")
-
-            ;; Make /root a union of the tmpfs and the actual root.  Use
-            ;; 'max_files' to set a high RLIMIT_NOFILE for the unionfs process
-            ;; itself.  Failing to do that, we quickly run out of file
-            ;; descriptors; see <http://bugs.gnu.org/17827>.
-            (unless (zero? (system* unionfs "-o"
-                                    
"cow,allow_other,use_ino,suid,dev,max_files=65536"
-                                    "/rw-root=RW:/real-root=RO"
-                                    "/root"))
-              (error "unionfs failed"))
-
-            ;; Make sure unionfs remains alive till the end.  Because
-            ;; 'fuse_daemonize' doesn't tell the PID of the forked daemon, we
-            ;; have to resort to 'pidof' here.
-            (mark-as-not-killable (pidof unionfs)))
-          (begin
-            (check-file-system root type)
-            (mount root "/root" type))))
-    (lambda args
-      (format (current-error-port) "exception while mounting '~a': ~s~%"
-              root args)
-      (start-repl)))
+  (if volatile-root?
+      (begin
+        (mkdir-p "/real-root")
+        (mount root "/real-root" type MS_RDONLY)
+        (mkdir-p "/rw-root")
+        (mount "none" "/rw-root" "tmpfs")
+
+        ;; We want read-write /dev nodes.
+        (make-essential-device-nodes #:root "/rw-root")
+
+        ;; Make /root a union of the tmpfs and the actual root.  Use
+        ;; 'max_files' to set a high RLIMIT_NOFILE for the unionfs process
+        ;; itself.  Failing to do that, we quickly run out of file
+        ;; descriptors; see <http://bugs.gnu.org/17827>.
+        (unless (zero? (system* unionfs "-o"
+                                
"cow,allow_other,use_ino,suid,dev,max_files=65536"
+                                "/rw-root=RW:/real-root=RO"
+                                "/root"))
+          (error "unionfs failed"))
+
+        ;; Make sure unionfs remains alive till the end.  Because
+        ;; 'fuse_daemonize' doesn't tell the PID of the forked daemon, we
+        ;; have to resort to 'pidof' here.
+        (mark-as-not-killable (pidof unionfs)))
+      (begin
+        (check-file-system root type)
+        (mount root "/root" type)))
 
   (copy-file "/proc/mounts" "/root/etc/mtab"))
 



reply via email to

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