From 35b248b06ac82fd911b3901e2afb0507fb866d1c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 22 Mar 2013 21:14:48 -0400 Subject: [PATCH] Windows: Create Symlinks in Volume Roots Permit the CreateSymbolicLink API to create symlinks in volume root directories. Change-Id: I779f127f9a7e4ddfee41fe7a9398f20175843be0 Reviewed-on: http://gerrit.openafs.org/9656 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp index 322b94b6f..92e8b3aa9 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp @@ -998,11 +998,19 @@ AFSProcessUserFsRequest( IN PIRP Irp) AFSAcquireExcl( pCcb->DirectoryCB->ObjectInformation->VolumeCB->ObjectInfoTree.TreeLock, TRUE); - ullIndex = AFSCreateLowIndex( &pCcb->DirectoryCB->ObjectInformation->ParentFileId); + if ( AFSIsVolumeFID( &pCcb->DirectoryCB->ObjectInformation->ParentFileId)) + { + + pParentObjectInfo = &pCcb->DirectoryCB->ObjectInformation->VolumeCB->ObjectInformation; + } + else + { + ullIndex = AFSCreateLowIndex( &pCcb->DirectoryCB->ObjectInformation->ParentFileId); - ntStatus = AFSLocateHashEntry( pCcb->DirectoryCB->ObjectInformation->VolumeCB->ObjectInfoTree.TreeHead, - ullIndex, - (AFSBTreeEntry **)&pParentObjectInfo); + ntStatus = AFSLocateHashEntry( pCcb->DirectoryCB->ObjectInformation->VolumeCB->ObjectInfoTree.TreeHead, + ullIndex, + (AFSBTreeEntry **)&pParentObjectInfo); + } if ( NT_SUCCESS( ntStatus)) { -- 2.39.5