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) {