os: don't limit file-systems-session upgrades

The 'File_system::Connection' already performs an on-demand session
upgrade should the server report an 'Out_of_caps' or 'Out_of_ram'
condition. So file-system clients are normally relieved from handling
those exceptions. However, the upgrade was limited to two attempts per
operation (which amounts to 16 KiB). When using the Rump VFS plugin in
the VFS server, this amount does not always suffice. So the exception is
reflected to the client. I observed this problem as a message "unhandled
error" printed by fs_rom. This patch removes the upgrade limit such that
a greedy file-system server becomes iteratively upgraded until it stops
arguing or the client's RAM is exhausted.
This commit is contained in:
Norman Feske 2017-09-28 17:09:24 +02:00 committed by Christian Helmuth
parent 676d05b751
commit dd5b03671d
1 changed files with 1 additions and 1 deletions

View File

@ -117,7 +117,7 @@ struct File_system::Connection : File_system::Connection_base
template <typename FUNC>
auto _retry(FUNC func) -> decltype(func())
{
enum { UPGRADE_ATTEMPTS = 2 };
enum { UPGRADE_ATTEMPTS = ~0U };
return Genode::retry<Out_of_ram>(
[&] () {
return Genode::retry<Out_of_caps>(