aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-21 17:35:56 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-21 17:35:56 +0200
commit9b9148d8bb1e6cdb383172bf3201f81c9bb43258 (patch)
treed5fd8d1c2162d33234c9fe7c5fe4da92e298ae06
parent738146bfd4a8643c13f20b9f621a2d98c6b06660 (diff)
downloadguix-9b9148d8bb1e6cdb383172bf3201f81c9bb43258.tar
guix-9b9148d8bb1e6cdb383172bf3201f81c9bb43258.tar.gz
linux-initrd: Allow unionfs to have a large number of open files.
Fixes <http://bugs.gnu.org/17827>. * guix/build/linux-initrd.scm (mount-root-file-system) [volatile-root?]: Pass unionfs '-o max_file=65536'.
-rw-r--r--guix/build/linux-initrd.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/guix/build/linux-initrd.scm b/guix/build/linux-initrd.scm
index c1a0247aff..627c55f865 100644
--- a/guix/build/linux-initrd.scm
+++ b/guix/build/linux-initrd.scm
@@ -439,9 +439,12 @@ UNIONFS."
;; We want read-write /dev nodes.
(make-essential-device-nodes #:root "/rw-root")
- ;; Make /root a union of the tmpfs and the actual 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"
+ "cow,allow_other,use_ino,suid,dev,max_files=65536"
"/rw-root=RW:/real-root=RO"
"/root"))
(error "unionfs failed"))