diff --git a/src/add-ons/kernel/file_systems/nfs4/InodeIdMap.h b/src/add-ons/kernel/file_systems/nfs4/InodeIdMap.h index 88692037d7..8da9227f85 100644 --- a/src/add-ons/kernel/file_systems/nfs4/InodeIdMap.h +++ b/src/add-ons/kernel/file_systems/nfs4/InodeIdMap.h @@ -19,6 +19,7 @@ class InodeIdMap { public: inline status_t AddEntry(const FileInfo& fi, ino_t id); + inline status_t RemoveEntry(ino_t id); inline status_t GetFileInfo(FileInfo* fi, ino_t id); private: @@ -34,6 +35,13 @@ InodeIdMap::AddEntry(const FileInfo& fi, ino_t id) } +inline status_t +InodeIdMap::RemoveEntry(ino_t id) +{ + return fMap.Remove(id); +} + + inline status_t InodeIdMap::GetFileInfo(FileInfo* fi, ino_t id) { diff --git a/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp b/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp index dcb73c721f..f2d56bca82 100644 --- a/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp @@ -197,6 +197,7 @@ static status_t nfs4_put_vnode(fs_volume* volume, fs_vnode* vnode, bool reenter) { Inode* inode = reinterpret_cast(vnode->private_node); + inode->FileSystem()->InoIdMap()->RemoveEntry(inode->ID()); delete inode; return B_OK;