#define AFS_MAX_FCBS_TO_DROP 10
-static AFSExtent *NextExtent( AFSExtent *Extent, ULONG SkipList );
static ULONG ExtentsMasks[AFS_NUM_EXTENT_LISTS] = AFS_EXTENTS_MASKS;
static VOID VerifyExtentsLists(AFSFcb *Fcb);
static AFSExtent *DirtyExtentFor(PLIST_ENTRY le);
AFSExtent *
ExtentFor(PLIST_ENTRY le, ULONG SkipList)
{
+
return CONTAINING_RECORD( le, AFSExtent, Lists[SkipList] );
}
-static AFSExtent *NextExtent(AFSExtent *Extent, ULONG SkipList)
+AFSExtent *
+NextExtent(AFSExtent *Extent, ULONG SkipList)
{
+
return ExtentFor(Extent->Lists[SkipList].Flink, SkipList);
}
static AFSExtent *DirtyExtentFor(PLIST_ENTRY le)
{
+
return CONTAINING_RECORD( le, AFSExtent, DirtyList );
}
#include "AFSCommon.h"
-static AFSExtent *NextExtent(AFSExtent *Extent);
-
//
// Called in the paging or non cached read and write paths to get the
// first and last extent in a span. We also the count of how many
while ((Offset->QuadPart + Length) >
pEndExtent->FileOffset.QuadPart + pEndExtent->Size) {
- pEndExtent = NextExtent(pEndExtent);
+ pEndExtent = NextExtent(pEndExtent, AFS_EXTENTS_LIST);
if (liLastCacheOffset.QuadPart != pEndExtent->CacheOffset.QuadPart) {
//
//
// Collapse the read if we can
//
- pNextExtent = NextExtent( pExtent );
+ pNextExtent = NextExtent( pExtent, AFS_EXTENTS_LIST);
if (pNextExtent->CacheOffset.QuadPart !=
(pExtent->CacheOffset.QuadPart + pExtent->Size))
}
}
-static AFSExtent *ExtentFor(PLIST_ENTRY le)
-{
- return CONTAINING_RECORD( le, AFSExtent, Lists[AFS_EXTENTS_LIST] );
-}
-
-static AFSExtent *NextExtent(AFSExtent *Extent)
-{
- return ExtentFor(Extent->Lists[AFS_EXTENTS_LIST].Flink);
-}
-
NTSTATUS
AFSProcessExtentRun( IN PVOID SystemBuffer,
IN PLARGE_INTEGER Start,
//
// Collapse the read if we can
//
- pNextExtent = NextExtent( pExtent );
+ pNextExtent = NextExtent( pExtent, AFS_EXTENTS_LIST);
if (pNextExtent->CacheOffset.QuadPart !=
(pExtent->CacheOffset.QuadPart + pExtent->Size))