[haiku-commits] r37581 - haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 19 Jul 2010 12:48:44 +0200 (CEST)

Author: bonefish
Date: 2010-07-19 12:48:44 +0200 (Mon, 19 Jul 2010)
New Revision: 37581
Changeset: http://dev.haiku-os.org/changeset/37581

Modified:
   
haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp
Log:
Volume::Link(): Also unwrap the target vnode. The client FS would get a wrong
vnode pointer.


Modified: 
haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp 
    2010-07-19 10:41:16 UTC (rev 37580)
+++ 
haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp 
    2010-07-19 10:48:44 UTC (rev 37581)
@@ -1749,6 +1749,7 @@
 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 @@
        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;
 


Other related posts:

  • » [haiku-commits] r37581 - haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on - ingo_weinhold