[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"))