From 73eb7a52a0a5e107d66fcf52aaa8a101df6b4c5c Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 16 Jun 2017 09:22:33 -0500 Subject: [PATCH] server/fs_report: do not append '.report to file names Appending a suffix to report filenames was behavior inherited from fs_log, it prevents creating files where directories need to be created later. But unlike logs, only a subset of the hierarchy will report and those that do append a component-local label, so the risk of collision is low. By removing the suffix fs_rom can serve reports back as ROM just as report_rom does. Ref #2422 --- repos/os/run/fs_report.run | 2 +- repos/os/src/server/fs_report/main.cc | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/repos/os/run/fs_report.run b/repos/os/run/fs_report.run index 59eab44d8d..4e5341d6c3 100644 --- a/repos/os/run/fs_report.run +++ b/repos/os/run/fs_report.run @@ -40,7 +40,7 @@ append config { - + diff --git a/repos/os/src/server/fs_report/main.cc b/repos/os/src/server/fs_report/main.cc index bbdff51914..c89d43b32a 100644 --- a/repos/os/src/server/fs_report/main.cc +++ b/repos/os/src/server/fs_report/main.cc @@ -40,6 +40,8 @@ static bool create_parent_dir(Vfs::Directory_service &vfs, Path const &child) Path parent = child; parent.strip_last_element(); + if (parent == "/") + return true; Mkdir_result res = vfs.mkdir(parent.base(), 0); if (res == Mkdir_result::MKDIR_ERR_NO_ENTRY) { @@ -83,7 +85,6 @@ class Fs_report::Session_component : public Genode::Rpc_object typedef Vfs::Directory_service::Open_result Open_result; Path path = path_from_label(label.string()); - path.append(".report"); create_parent_dir(vfs, path); @@ -135,7 +136,7 @@ class Fs_report::Session_component : public Genode::Rpc_object _handle->seek(offset); Write_result res = _handle->fs().write( - _handle, _ds.local_addr(), + _handle, _ds.local_addr()+offset, length - offset, n); if (res != Write_result::WRITE_OK) {