From: Jeffrey Altman Date: Tue, 31 Jan 2012 20:51:34 +0000 (-0500) Subject: Windows: Improve AFSNotifyDelete X-Git-Tag: upstream/1.8.0_pre1^2~2788 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=fe952116f3f0968e6c9f584297bafd3e8dd56903;p=packages%2Fo%2Fopenafs.git Windows: Improve AFSNotifyDelete Do not call AFSNotifyDelete after the reference count on the DirEntry->ObjectInformation is given up. Log the Parent FID and file name since that is what are passed to the service to perform a delete. Log the actual FID of the object being deleted and not the address of the FID fields. Change-Id: Ic02e2cec625258356d1b08e03a02a7a9c4eb4ce7 Reviewed-on: http://gerrit.openafs.org/6645 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp index 3d702e0fe..325a562c1 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp @@ -1923,11 +1923,16 @@ AFSNotifyDelete( IN AFSDirectoryCB *DirectoryCB, AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_ERROR, - "AFSNotifyDelete failed FID %08lX-%08lX-%08lX-%08lX Status %08lX\n", - &DirectoryCB->ObjectInformation->FileId.Cell, - &DirectoryCB->ObjectInformation->FileId.Volume, - &DirectoryCB->ObjectInformation->FileId.Vnode, - &DirectoryCB->ObjectInformation->FileId.Unique, + "AFSNotifyDelete failed ParentFID %08lX-%08lX-%08lX-%08lX %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n", + stDelete.ParentId.Cell, + stDelete.ParentId.Volume, + stDelete.ParentId.Vnode, + stDelete.ParentId.Unique, + &DirectoryCB->NameInformation.FileName, + DirectoryCB->ObjectInformation->FileId.Cell, + DirectoryCB->ObjectInformation->FileId.Volume, + DirectoryCB->ObjectInformation->FileId.Vnode, + DirectoryCB->ObjectInformation->FileId.Unique, ntStatus); try_return( ntStatus); diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp index 5c2f9a2be..08fecc121 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp @@ -2138,6 +2138,10 @@ try_exit: SetFlag( pDirEntry->Flags, AFS_DIR_ENTRY_DELETED); + AFSNotifyDelete( pDirEntry, + AuthGroup, + FALSE); + // // Decrement the reference added during initialization of the DE // @@ -2159,10 +2163,6 @@ try_exit: pDirEntry, FALSE); // Leave it in the enum list so the worker cleans it up - AFSNotifyDelete( pDirEntry, - AuthGroup, - FALSE); - // // Tag the parent as needing verification //