From ff7d3a19f032c5d4917cc04eeff9cf92733f1fae Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 9 Nov 2011 22:33:11 -0500 Subject: [PATCH] Windows: Additional trace logging Add additional trace logging to the redirector to assist with debugging reparse point processing. Change-Id: I89d7a26d7d10ba5fff001d91f5e67baa224f4179 Reviewed-on: http://gerrit.openafs.org/5825 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp | 20 ++++++++---- src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp | 15 +++++++-- src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp | 33 ++++++++++++++++++++ 3 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp index a9b9ac949..46dbc4520 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp @@ -648,21 +648,29 @@ AFSCommonCreate( IN PDEVICE_OBJECT DeviceObject, try_return( ntStatus); } - if ( BooleanFlagOn( ulOptions, FILE_OPEN_REPARSE_POINT) && - pDirectoryCB != NULL) + if ( BooleanFlagOn( ulOptions, FILE_OPEN_REPARSE_POINT)) { - if( !BooleanFlagOn( pDirectoryCB->ObjectInformation->FileAttributes, FILE_ATTRIBUTE_REPARSE_POINT)) + if( pDirectoryCB == NULL || + !BooleanFlagOn( pDirectoryCB->ObjectInformation->FileAttributes, FILE_ATTRIBUTE_REPARSE_POINT)) { AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE, - "AFSCommonCreate (%08lX) Reparse open request but attribute not set for %wZ Type %08lX\n", + "AFSCommonCreate (%08lX) Reparse open request but attribute not set for %wZ DirCB %p Type %08lX\n", Irp, &uniFileName, - pDirectoryCB->ObjectInformation->FileType); + pDirectoryCB, + pDirectoryCB ? pDirectoryCB->ObjectInformation->FileType : 0); } else { + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_VERBOSE, + "AFSCommonCreate (%08lX) Opening as reparse point %wZ Type %08lX\n", + Irp, + &uniFileName, + pDirectoryCB->ObjectInformation->FileType); + bOpenedReparsePoint = TRUE; } } @@ -1459,7 +1467,7 @@ AFSOpenRoot( IN PIRP Irp, AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_ERROR, - "AFSOpenRoot (%08lX) Failed to open file in service Status %08lX\n", + "AFSOpenRoot (%08lX) Failed open in service AFSRoot Status %08lX\n", Irp, ntStatus); diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp index 3c441a890..5eefef022 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp @@ -307,7 +307,10 @@ AFSProcessUserFsRequest( IN PIRP Irp) AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE_2, - "AFSProcessUserFsRequest Processing FSCTL_GET_REPARSE_POINT request\n"); + "AFSProcessUserFsRequest Processing FSCTL_GET_REPARSE_POINT request %wZ Type 0x%x Attrib 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes); // // Check if we have the reparse entry set on the entry @@ -552,7 +555,10 @@ AFSProcessUserFsRequest( IN PIRP Irp) AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE_2, - "AFSProcessUserFsRequest Processing FSCTL_SET_REPARSE_POINT request\n"); + "AFSProcessUserFsRequest Processing FSCTL_SET_REPARSE_POINT request %wZ Type 0x%x Attrib 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes); // // Check if we have the reparse entry set on the entry @@ -606,7 +612,10 @@ AFSProcessUserFsRequest( IN PIRP Irp) AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE_2, - "AFSProcessUserFsRequest Processing FSCTL_DELETE_REPARSE_POINT request\n"); + "AFSProcessUserFsRequest Processing FSCTL_DELETE_REPARSE_POINT request %wZ Type 0x%x Attrib 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes); // // Check if we have the reparse entry set on the entry diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index 87d21c8b3..3ac9a85db 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -807,6 +807,15 @@ AFSQueryBasicInfo( IN PIRP Irp, TRUE); } + + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_VERBOSE_2, + "AFSQueryBasicInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes, + ulFileAttribs); + Buffer->CreationTime = DirectoryCB->ObjectInformation->CreationTime; Buffer->LastAccessTime = DirectoryCB->ObjectInformation->LastAccessTime; Buffer->LastWriteTime = DirectoryCB->ObjectInformation->LastWriteTime; @@ -902,6 +911,14 @@ AFSQueryStandardInfo( IN PIRP Irp, TRUE); } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_VERBOSE_2, + "AFSQueryStandardInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes, + ulFileAttribs); + Buffer->Directory = BooleanFlagOn( ulFileAttribs, FILE_ATTRIBUTE_DIRECTORY); *Length -= sizeof( FILE_STANDARD_INFORMATION); @@ -1378,6 +1395,14 @@ AFSQueryNetworkInfo( IN PIRP Irp, TRUE); } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_VERBOSE_2, + "AFSQueryNetworkInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes, + ulFileAttribs); + Buffer->CreationTime.QuadPart = DirectoryCB->ObjectInformation->CreationTime.QuadPart; Buffer->LastAccessTime.QuadPart = DirectoryCB->ObjectInformation->LastAccessTime.QuadPart; Buffer->LastWriteTime.QuadPart = DirectoryCB->ObjectInformation->LastWriteTime.QuadPart; @@ -1546,6 +1571,14 @@ AFSQueryAttribTagInfo( IN PIRP Irp, TRUE); } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_VERBOSE_2, + "AFSAttribTagInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n", + &pCcb->DirectoryCB->NameInformation.FileName, + pCcb->DirectoryCB->ObjectInformation->FileType, + pCcb->DirectoryCB->ObjectInformation->FileAttributes, + ulFileAttribs); + Buffer->FileAttributes = ulFileAttribs; if( DirectoryCB->NameInformation.FileName.Buffer[ 0] == L'.' && -- 2.39.5