From fe952116f3f0968e6c9f584297bafd3e8dd56903 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 31 Jan 2012 15:51:34 -0500 Subject: [PATCH] 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 --- src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp | 15 ++++++++++----- src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp | 8 ++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp index 3d702e0..325a562 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 5c2f9a2..08fecc1 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 // -- 1.9.4