mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 10:01:57 +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); })) { }
|
_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
|
* Increase quotas
|
||||||
*/
|
*/
|
||||||
@ -781,21 +769,15 @@ class Vfs_server::Root :
|
|||||||
|
|
||||||
if ((ram_used > ram_quota) || (cap_used > cap_quota)) {
|
if ((ram_used > ram_quota) || (cap_used > cap_quota)) {
|
||||||
if (ram_used > ram_quota)
|
if (ram_used > ram_quota)
|
||||||
Genode::error("ram donation is ", ram_quota,
|
Genode::warning("ram donation is ", ram_quota,
|
||||||
" but used RAM is ", ram_used, "B"
|
" but used RAM is ", ram_used, "B"
|
||||||
", denying '", label, "'");
|
", '", label, "'");
|
||||||
if (cap_used > cap_quota)
|
if (cap_used > cap_quota)
|
||||||
Genode::error("cap donation is ", cap_quota,
|
Genode::warning("cap donation is ", cap_quota,
|
||||||
" but used caps is ", cap_used,
|
" but used caps is ", cap_used,
|
||||||
", denying '", label, "'");
|
", '", label, "'");
|
||||||
destroy(*session);
|
|
||||||
throw Service_denied();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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, "'");
|
Genode::log("session opened for '", label, "' at '", session_root, "'");
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user