mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
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:
parent
c3853494c8
commit
8808b99cc5
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user