From b2f7a6a9346e9b9ac1a7af051d2e7d03af3ad64a Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Mon, 9 Jul 2018 17:34:50 +0200 Subject: [PATCH] vfs_lxip: look up path in 'leaf_path()' Fixes #2913 --- repos/dde_linux/src/lib/vfs/lxip/vfs.cc | 7 +++++-- repos/os/include/vfs/directory_service.h | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/repos/dde_linux/src/lib/vfs/lxip/vfs.cc b/repos/dde_linux/src/lib/vfs/lxip/vfs.cc index 54f1e196a..d24c5d1c3 100644 --- a/repos/dde_linux/src/lib/vfs/lxip/vfs.cc +++ b/repos/dde_linux/src/lib/vfs/lxip/vfs.cc @@ -1748,8 +1748,11 @@ class Vfs::Lxip_file_system : public Vfs::File_system, return node ? dynamic_cast(node) : 0; } - char const *leaf_path(char const *path) override { - return path; } + char const *leaf_path(char const *path) override + { + Vfs::Node *node = _lookup(path); + return node ? path : nullptr; + } Vfs::Directory_service::Open_result open(char const *path, unsigned mode, diff --git a/repos/os/include/vfs/directory_service.h b/repos/os/include/vfs/directory_service.h index 0a71a7edc..b678f4259 100644 --- a/repos/os/include/vfs/directory_service.h +++ b/repos/os/include/vfs/directory_service.h @@ -223,6 +223,9 @@ struct Vfs::Directory_service : Interface virtual bool directory(char const *path) = 0; + /** + * Return leaf path or nullptr if the path does not exist + */ virtual char const *leaf_path(char const *path) = 0; };