vfs: remove session ram quota checks

The first client that creates a session, has to pay for possibly large
vfs plugin allocations (e.g., rump), which should be payed for by the
server.
This commit is contained in:
Sebastian Sumpf 2017-12-05 15:10:34 +01:00 committed by Christian Helmuth
parent c3853494c8
commit 8808b99cc5
1 changed files with 6 additions and 24 deletions

View File

@ -390,18 +390,6 @@ class Vfs_server::Session_component : public File_system::Session_rpc_object,
_close(node); })) { }
}
/**
* Clip quota limits
*/
void clip_ram(size_t clipped) {
auto avail = _ram_guard.avail().value;
if (avail > clipped)
_ram_guard.withdraw(Genode::Ram_quota{avail - clipped}); }
void clip_caps(size_t clipped) {
auto avail = _cap_guard.avail().value;
if (avail > clipped)
_cap_guard.withdraw(Genode::Cap_quota{avail - clipped}); }
/**
* Increase quotas
*/
@ -781,21 +769,15 @@ class Vfs_server::Root :
if ((ram_used > ram_quota) || (cap_used > cap_quota)) {
if (ram_used > ram_quota)
Genode::error("ram donation is ", ram_quota,
" but used RAM is ", ram_used, "B"
", denying '", label, "'");
Genode::warning("ram donation is ", ram_quota,
" but used RAM is ", ram_used, "B"
", '", label, "'");
if (cap_used > cap_quota)
Genode::error("cap donation is ", cap_quota,
" but used caps is ", cap_used,
", denying '", label, "'");
destroy(*session);
throw Service_denied();
Genode::warning("cap donation is ", cap_quota,
" but used caps is ", cap_used,
", '", label, "'");
}
/* account allocations not caught by session guards */
session->clip_ram(ram_quota - ram_used);
session->clip_caps(cap_quota - cap_used);
Genode::log("session opened for '", label, "' at '", session_root, "'");
return session;
}