From 6e098a9d17ca6e67c2059cfe2f03731355d285d3 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Thu, 21 Nov 2019 16:15:04 +0100 Subject: [PATCH] ram_fs: apply session policy to write / mtime ops This patch extends the distinction between read-only and writeable sessions to packet-stream operations for WRITE and WRITE_TIMESTAMP. --- repos/os/src/server/ram_fs/main.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/repos/os/src/server/ram_fs/main.cc b/repos/os/src/server/ram_fs/main.cc index 54adfc9de..f8b5e8b68 100644 --- a/repos/os/src/server/ram_fs/main.cc +++ b/repos/os/src/server/ram_fs/main.cc @@ -92,7 +92,11 @@ class Ram_fs::Session_component : public File_system::Session_rpc_object if (packet.length() <= packet.size()) { Locked_ptr node { open_node.node() }; if (!node.valid()) - break; + break; + + if (_writeable == Session_writeable::READ_ONLY) + break; + res_length = node->write((char const *)tx_sink()->packet_content(packet), length, packet.position()); @@ -113,10 +117,11 @@ class Ram_fs::Session_component : public File_system::Session_rpc_object if (!node.valid()) break; - packet.with_timestamp([&] (File_system::Timestamp const time) { - node->update_modification_time(time); - succeeded = true; - }); + if (_writeable == Session_writeable::WRITEABLE) + packet.with_timestamp([&] (File_system::Timestamp const time) { + node->update_modification_time(time); + succeeded = true; + }); break; }