AFSFcb *pFcb = NULL;
AFSNonPagedFcb *pNPFcb = NULL;
IO_STATUS_BLOCK stIoSb = {0,0};
- BOOLEAN bUninitFileLock = FALSE;
USHORT usFcbLength = 0;
ULONGLONG ullIndex = 0;
AFSDirEnumEntry *pDirEnumCB = NULL;
NULL,
NULL);
- bUninitFileLock = TRUE;
-
//
// Initialize the header file sizes to our dir entry information
//
if( pFcb != NULL)
{
- if( bUninitFileLock)
- {
-
- FsRtlUninitializeFileLock( &pFcb->Specific.File.FileLock);
- }
-
if( pNPFcb != NULL)
{
AFSReleaseResource( &pNPFcb->Resource);
+ FsRtlTeardownPerStreamContexts( &pFcb->Header);
+
+ if ( pObjectInfo->FileType == AFS_FILE_TYPE_FILE)
+ {
+
+ FsRtlUninitializeFileLock( &pFcb->Specific.File.FileLock);
+
+ ExDeleteResourceLite( &pNPFcb->Specific.File.ExtentsResource);
+
+ ExDeleteResourceLite( &pNPFcb->Specific.File.DirtyExtentsListLock);
+ }
+
ExDeleteResourceLite( &pNPFcb->PagingResource);
ExDeleteResourceLite( &pNPFcb->CcbListLock);
ExDeleteResourceLite( &pNPFcb->Resource);
+
+ AFSExFreePool( pNPFcb);
}
AFSExFreePool( pFcb);
}
-
- if( pNPFcb != NULL)
- {
-
- AFSExFreePool( pNPFcb);
- }
}
}