diff --git a/repos/dde_rump/src/lib/vfs/rump/vfs_rump.cc b/repos/dde_rump/src/lib/vfs/rump/vfs_rump.cc index 6deb87082f..d63b8c6756 100644 --- a/repos/dde_rump/src/lib/vfs/rump/vfs_rump.cc +++ b/repos/dde_rump/src/lib/vfs/rump/vfs_rump.cc @@ -29,6 +29,7 @@ extern "C" { #include #include #include +#include #include #include } @@ -692,6 +693,16 @@ class Rump_factory : public Vfs::File_system_factory /* set all bits but the stickies */ rump_sys_umask(S_ISUID|S_ISGID|S_ISVTX); + /* increase open file limit */ + struct rlimit rlim { ~0U, ~0U }; + if (rump_sys_getrlimit(RLIMIT_NOFILE, &rlim) == 0) { + rlim.rlim_cur = rlim.rlim_max; + if (rump_sys_setrlimit(RLIMIT_NOFILE, &rlim) == 0) { + Genode::log("increased Rump open file" + " limit to ", rlim.rlim_max); + } + } + /* start syncing */ enum { TEN_SEC = 10*1000*1000 }; _timer.sigh(_sync_handler);