From: Jeffrey Altman Date: Sat, 23 Mar 2013 01:14:48 +0000 (-0400) Subject: Windows: Create Symlinks in Volume Roots X-Git-Tag: upstream/1.8.0_pre1^2~1275 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=35b248b06ac82fd911b3901e2afb0507fb866d1c;p=packages%2Fo%2Fopenafs.git 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 --- 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)) {