Windows: Adjust Last Write time handling for -1
[openafs.git] / src / WINNT / afsrdr / kernel / lib / AFSCleanup.cpp
index df613ca..3361a9b 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2008, 2009, 2010, 2011 Kernel Drivers, LLC.
- * Copyright (c) 2009, 2010, 2011 Your File System, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Kernel Drivers, LLC.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Your File System, Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * - Redistributions of source code must retain the above copyright notice,
  *   this list of conditions and the following disclaimer.
  * - Redistributions in binary form must reproduce the above copyright
- *   notice,
- *   this list of conditions and the following disclaimer in the
- *   documentation
- *   and/or other materials provided with the distribution.
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
  * - Neither the names of Kernel Drivers, LLC and Your File System, Inc.
  *   nor the names of their contributors may be used to endorse or promote
  *   products derived from this software without specific prior written
@@ -110,7 +108,8 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
         {
 
             pParentObjectInfo = AFSFindObjectInfo( pObjectInfo->VolumeCB,
-                                                   &pObjectInfo->ParentFileId);
+                                                   &pObjectInfo->ParentFileId,
+                                                   FALSE);
         }
 
         pRootFcb = pObjectInfo->VolumeCB->RootFcb;
@@ -152,11 +151,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
             case AFS_ROOT_ALL:
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Acquiring GlobalRoot lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->Resource,
                                   TRUE);
@@ -169,11 +168,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (RootAll) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 AFSReleaseResource( &pFcb->NPFcb->Resource);
 
@@ -183,11 +182,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
             case AFS_IOCTL_FCB:
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Acquiring PIOCtl lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->Resource,
                                   TRUE);
@@ -204,22 +203,22 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                     lCount = InterlockedDecrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup (IOCtl) Decrement child open handle count on Parent object %p Cnt %d\n",
                                   pParentObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
                 AFSReleaseResource( &pFcb->NPFcb->Resource);
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (IOCtl) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 break;
             }
@@ -235,24 +234,34 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                 // We may be performing some cleanup on the Fcb so grab it exclusive to ensure no collisions
                 //
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+
+               AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                             AFS_TRACE_LEVEL_VERBOSE,
+                             "AFSCleanup Acquiring Fcb lock %p EXCL %08lX\n",
+                             &pFcb->NPFcb->Resource,
+                             PsGetCurrentThread()));
+
+               AFSAcquireExcl( &pFcb->NPFcb->Resource,
+                               TRUE);
+
+               AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING|AFS_SUBSYSTEM_SECTION_OBJECT,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->SectionObjectResource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->SectionObjectResource,
                                 TRUE);
 
-                //
-                // If the handle has write permission ...
-                //
-
-                if( ((pCcb->GrantedAccess & FILE_WRITE_DATA) || pFcb->OpenHandleCount == 1) &&
-                    CcIsFileCached( pIrpSp->FileObject))
+               __try
                 {
 
-                    __try
+                   //
+                   // If the handle has write permission ...
+                   //
+
+                   if( ((pCcb->GrantedAccess & FILE_WRITE_DATA) || pFcb->OpenHandleCount == 1) &&
+                       CcIsFileCached( pIrpSp->FileObject))
                     {
 
                         CcFlushCache( &pFcb->NPFcb->SectionObjectPointers,
@@ -263,7 +272,7 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                         if( !NT_SUCCESS( stIoSB.Status))
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                           AFS_TRACE_LEVEL_ERROR,
                                           "AFSCleanup CcFlushCache failure %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                           &pCcb->FullFileName,
@@ -272,7 +281,7 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                           pObjectInfo->FileId.Vnode,
                                           pObjectInfo->FileId.Unique,
                                           stIoSB.Status,
-                                          stIoSB.Information);
+                                          stIoSB.Information));
 
                             ntStatus = stIoSB.Status;
                         }
@@ -288,13 +297,13 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                                                        FALSE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                               AFS_TRACE_LEVEL_WARNING,
                                               "AFSCleanup CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                               pObjectInfo->FileId.Cell,
                                               pObjectInfo->FileId.Volume,
                                               pObjectInfo->FileId.Vnode,
-                                              pObjectInfo->FileId.Unique);
+                                              pObjectInfo->FileId.Unique));
 
                                 SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                             }
@@ -304,56 +313,46 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             }
                         }
                     }
-                    __except( EXCEPTION_EXECUTE_HANDLER)
-                    {
-
-                        ntStatus = GetExceptionCode();
 
-                        AFSDbgLogMsg( 0,
-                                      0,
-                                      "EXCEPTION - AFSCleanup Cc FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
-                                      pObjectInfo->FileId.Cell,
-                                      pObjectInfo->FileId.Volume,
-                                      pObjectInfo->FileId.Vnode,
-                                      pObjectInfo->FileId.Unique,
-                                      ntStatus);
-
-                        SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
-                    }
+                   //
+                   // Uninitialize the cache map. This call is unconditional.
+                   //
+
+                   AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
+                                 AFS_TRACE_LEVEL_VERBOSE,
+                                 "AFSCleanup Tearing down cache map for Fcb %p FileObject %p\n",
+                                 pFcb,
+                                 pFileObject));
+
+                   CcUninitializeCacheMap( pFileObject,
+                                           NULL,
+                                           NULL);
+               }
+               __except( EXCEPTION_EXECUTE_HANDLER)
+               {
+
+                   ntStatus = GetExceptionCode();
+
+                   AFSDbgTrace(( 0,
+                                 0,
+                                 "EXCEPTION - AFSCleanup Cc FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
+                                 pObjectInfo->FileId.Cell,
+                                 pObjectInfo->FileId.Volume,
+                                 pObjectInfo->FileId.Vnode,
+                                 pObjectInfo->FileId.Unique,
+                                 ntStatus));
+
+                   SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                 }
 
-                //
-                // Uninitialize the cache map. This call is unconditional.
-                //
-
-                AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
-                              AFS_TRACE_LEVEL_VERBOSE,
-                              "AFSCleanup Tearing down cache map for Fcb %p FileObject %p\n",
-                              pFcb,
-                              pFileObject);
-
-                CcUninitializeCacheMap( pFileObject,
-                                        NULL,
-                                        NULL);
-
-
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+               AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING|AFS_SUBSYSTEM_SECTION_OBJECT,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->SectionObjectResource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSReleaseResource( &pFcb->NPFcb->SectionObjectResource);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
-                              AFS_TRACE_LEVEL_VERBOSE,
-                              "AFSCleanup Acquiring Fcb lock %p EXCL %08lX\n",
-                              &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
-
-                AFSAcquireExcl( &pFcb->NPFcb->Resource,
-                                TRUE);
-
                 //
                 // Unlock all outstanding locks on the file, again, unconditionally
                 //
@@ -383,6 +382,21 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                 stFileCleanup.LastAccessTime = pObjectInfo->LastAccessTime;
 
+               //
+               // If the file has been modified set the last write time in ObjectInfo to 'now'
+               // unless the last write time was set via this File Object.  Then tell the
+               // following code to write the time.
+               //
+               if ( BooleanFlagOn( pFileObject->Flags, FO_FILE_MODIFIED) &&
+                    !BooleanFlagOn( pCcb->Flags, CCB_FLAG_LAST_WRITE_TIME_SET)) {
+
+                   SetFlag( pFcb->Flags, AFS_FCB_FLAG_FILE_MODIFIED);
+
+                   SetFlag( pFcb->Flags, AFS_FCB_FLAG_UPDATE_LAST_WRITE_TIME);
+
+                   KeQuerySystemTime(&pFcb->ObjectInformation->LastWriteTime);
+               }
+
                 if( BooleanFlagOn( pFcb->Flags, AFS_FCB_FLAG_FILE_MODIFIED))
                 {
 
@@ -419,16 +433,10 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                         stFileCleanup.LastWriteTime = pObjectInfo->LastWriteTime;
 
-                        ClearFlag( pFcb->Flags, AFS_FCB_FLAG_UPDATE_LAST_WRITE_TIME | AFS_FCB_FLAG_UPDATE_WRITE_TIME);
+                       ClearFlag( pFcb->Flags, AFS_FCB_FLAG_UPDATE_LAST_WRITE_TIME);
                     }
                 }
 
-                if( BooleanFlagOn( pFcb->Flags, AFS_FCB_FLAG_UPDATE_WRITE_TIME))
-                {
-
-                    stFileCleanup.LastWriteTime = pObjectInfo->LastWriteTime;
-                }
-
                 //
                 // If the count has dropped to one and there is a pending delete
                 // then delete the node.  The final count will be decremented just
@@ -469,11 +477,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                         ntStatus != STATUS_OBJECT_NAME_NOT_FOUND)
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSCleanup Failed to notify service of deleted file %wZ Status %08lX\n",
                                       &pCcb->FullFileName,
-                                      ntStatus);
+                                      ntStatus));
 
                         ntStatus = STATUS_SUCCESS;
 
@@ -491,11 +499,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             // Stop anything possibly in process
                             //
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSCleanup Acquiring Fcb extents lock %p EXCL %08lX\n",
                                           &pFcb->NPFcb->Specific.File.ExtentsResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSAcquireExcl( &pFcb->NPFcb->Specific.File.ExtentsResource,
                                             TRUE);
@@ -512,20 +520,20 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                             AFSDeleteFcbExtents( pFcb);
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSCleanup Releasing Fcb extents lock %p EXCL %08lX\n",
                                           &pFcb->NPFcb->Specific.File.ExtentsResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSReleaseResource( &pFcb->NPFcb->Specific.File.ExtentsResource);
                         }
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSCleanup Setting DELETE flag in file %wZ Dir Entry %p\n",
                                       &pCcb->FullFileName,
-                                      pCcb->DirectoryCB);
+                                      pCcb->DirectoryCB));
 
                         SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_DELETED);
 
@@ -560,11 +568,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             if( !BooleanFlagOn( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ removing entry\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
 
                                 AFSRemoveNameEntry( pParentObjectInfo,
                                                     pCcb->DirectoryCB);
@@ -572,11 +580,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             else
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to flag set\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
 
                             AFSReleaseResource( pParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock);
@@ -591,11 +599,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             if( !BooleanFlagOn( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to pParentObjectInfo == NULL\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
                         }
                     }
@@ -745,21 +753,21 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                     lCount = InterlockedDecrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup (File) Decrement child open handle count on Parent object %p Cnt %d\n",
                                   pParentObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (File) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 if( BooleanFlagOn( pFcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE))
                 {
@@ -770,11 +778,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                     lCount = AFSObjectInfoIncrement( pObjectInfo,
                                                      AFS_OBJECT_REFERENCE_INVALIDATION);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup Setting Purge on Close Increment count on object %p Cnt %d\n",
                                   pObjectInfo,
-                                  lCount);
+                                  lCount));
 
                     ClearFlag( pFcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
 
@@ -817,11 +825,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                 // We may be performing some cleanup on the Fcb so grab it exclusive to ensure no collisions
                 //
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Acquiring Dcb lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->Resource,
                                   TRUE);
@@ -912,11 +920,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                         ntStatus != STATUS_OBJECT_NAME_NOT_FOUND)
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSCleanup Failed to notify service of deleted directory %wZ Status %08lX\n",
                                       &pCcb->FullFileName,
-                                      ntStatus);
+                                      ntStatus));
 
                         ntStatus = STATUS_SUCCESS;
 
@@ -927,11 +935,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                         ntStatus = STATUS_SUCCESS;
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSCleanup Setting DELETE flag in directory %wZ Dir Entry %p\n",
                                       &pCcb->FullFileName,
-                                      pCcb->DirectoryCB);
+                                      pCcb->DirectoryCB));
 
                         SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_DELETED);
 
@@ -972,11 +980,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             else
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to flag set\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
 
                             AFSReleaseResource( pParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock);
@@ -991,11 +999,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             if( !BooleanFlagOn( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to pParentObjectInfo == NULL\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
                         }
                     }
@@ -1105,20 +1113,20 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                     lCount = InterlockedDecrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup (Dir) Decrement child open handle count on Parent object %p Cnt %d\n",
                                   pParentObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (Dir) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 AFSReleaseResource( &pFcb->NPFcb->Resource);
 
@@ -1135,11 +1143,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                 // We may be performing some cleanup on the Fcb so grab it exclusive to ensure no collisions
                 //
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (MP/SL) Acquiring Dcb lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->Resource,
                                   TRUE);
@@ -1230,11 +1238,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                         ntStatus != STATUS_OBJECT_NAME_NOT_FOUND)
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSCleanup Failed to notify service of deleted MP/SL %wZ Status %08lX\n",
                                       &pCcb->FullFileName,
-                                      ntStatus);
+                                      ntStatus));
 
                         ntStatus = STATUS_SUCCESS;
 
@@ -1245,11 +1253,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                         ntStatus = STATUS_SUCCESS;
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSCleanup Setting DELETE flag in MP/SL %wZ Dir Entry %p\n",
                                       &pCcb->FullFileName,
-                                      pCcb->DirectoryCB);
+                                      pCcb->DirectoryCB));
 
                         SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_DELETED);
 
@@ -1289,11 +1297,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             else
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to flag set\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
 
                             AFSReleaseResource( pParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock);
@@ -1309,11 +1317,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
                             if( !BooleanFlagOn( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSCleanup DE %p for %wZ NOT removing entry due to pParentObjectInfo == NULL\n",
                                               pCcb->DirectoryCB,
-                                              &pCcb->DirectoryCB->NameInformation.FileName);
+                                              &pCcb->DirectoryCB->NameInformation.FileName));
                             }
                         }
                     }
@@ -1415,20 +1423,20 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                     lCount = InterlockedDecrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup (MP/SL) Decrement child open handle count on Parent object %p Cnt %d\n",
                                   pParentObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (MP/SL) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 AFSReleaseResource( &pFcb->NPFcb->Resource);
 
@@ -1438,11 +1446,11 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
             case AFS_SPECIAL_SHARE_FCB:
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup Acquiring SPECIAL SHARE lock %p EXCL %08lX\n",
                               &pFcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireExcl( &pFcb->NPFcb->Resource,
                                 TRUE);
@@ -1459,20 +1467,20 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
                     lCount = InterlockedDecrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanup (Share) Decrement child open handle count on Parent object %p Cnt %d\n",
                                   pParentObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
                 lCount = InterlockedDecrement( &pFcb->OpenHandleCount);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanup (Share) Decrement handle count on Fcb %p Cnt %d\n",
                               pFcb,
-                              lCount);
+                              lCount));
 
                 AFSReleaseResource( &pFcb->NPFcb->Resource);
 
@@ -1481,10 +1489,10 @@ AFSCleanup( IN PDEVICE_OBJECT LibDeviceObject,
 
             default:
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_ERROR,
                               "AFSCleanup Processing unknown node type %d\n",
-                              pFcb->Header.NodeTypeCode);
+                              pFcb->Header.NodeTypeCode));
 
                 break;
         }
@@ -1523,9 +1531,9 @@ try_exit:
     __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) )
     {
 
-        AFSDbgLogMsg( 0,
+        AFSDbgTrace(( 0,
                       0,
-                      "EXCEPTION - AFSCleanup\n");
+                      "EXCEPTION - AFSCleanup\n"));
 
         AFSDumpTraceFilesFnc();
     }