From ae3bba85bbc54255563ce94d6844693884027ed6 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 19 Jul 2010 10:48:44 +0000 Subject: [PATCH] Volume::Link(): Also unwrap the target vnode. The client FS would get a wrong vnode pointer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37581 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp index 2d8e49cc2f..b2d6fa7a79 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp @@ -1749,6 +1749,7 @@ status_t Volume::Link(void* _dir, const char* name, void* node) { VNode* vnode = (VNode*)_dir; + VNode* targetVnode = (VNode*)node; // check capability if (!HasVNodeCapability(vnode, FS_VNODE_CAPABILITY_LINK)) @@ -1770,7 +1771,7 @@ Volume::Link(void* _dir, const char* name, void* node) request->volume = fUserlandVolume; request->node = vnode->clientNode; error = allocator.AllocateString(request->name, name); - request->target = node; + request->target = targetVnode->clientNode; if (error != B_OK) return error;