From: Jeffrey Altman Date: Sun, 7 Oct 2012 14:23:19 +0000 (-0400) Subject: Windows: AFSInitFcb Check ObjectInfo->Fcb for NULL X-Git-Tag: upstream/1.8.0_pre1^2~1898 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=05fa1202fb63e32aff3c60d47286c8af232322fe;p=packages%2Fo%2Fopenafs.git Windows: AFSInitFcb Check ObjectInfo->Fcb for NULL Now that AFSInitFcb is called under the ObjectInfoLock, it is once again safe to perform a test for ObjectInfo->Fcb != NULL and return immediately if an Fcb is already assigned. Change-Id: Id926b9ccf24c7761dbeacf42c53d7cc7d1375482 Reviewed-on: http://gerrit.openafs.org/8226 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp index 83faba82e..b3dee29dd 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp @@ -47,7 +47,7 @@ // // Return: // -// A status is returned for the function +// Return Fcb->NPFcb->Resource held exclusive // NTSTATUS @@ -74,6 +74,15 @@ AFSInitFcb( IN AFSDirectoryCB *DirEntry) pVolumeCB = pObjectInfo->VolumeCB; + if ( pObjectInfo->Fcb != NULL) + { + + AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->Resource, + TRUE); + + try_return( ntStatus = STATUS_SUCCESS); + } + // // Allocate the Fcb and the nonpaged portion of the Fcb. //