From: Jeffrey Altman Date: Sat, 26 May 2012 22:04:25 +0000 (-0400) Subject: Windows: consoldiate NextExtent() implementations X-Git-Tag: openafs-stable-1_8_0pre1~2356 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=c5f32b315982bf23f33d0395f404fe93563f0b8d Windows: consoldiate NextExtent() implementations Both AFSExtentsSupport.cpp and AFSIoSupport.cpp provided NextExtent() implementations. The AFSExtentsSupport version was more general. Use that one for both modules. Change-Id: I19d17c989b4eadd40dcbb3d6d4186c316c26577e Reviewed-on: http://gerrit.openafs.org/7517 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp index 705ae6c..37252eb 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp @@ -39,7 +39,6 @@ #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); @@ -3637,16 +3636,20 @@ AFSMarkDirty( IN AFSFcb *Fcb, 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 ); } diff --git a/src/WINNT/afsrdr/kernel/lib/AFSIoSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSIoSupport.cpp index fb23f0c..19949d6 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSIoSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSIoSupport.cpp @@ -38,8 +38,6 @@ #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 @@ -73,7 +71,7 @@ AFSGetExtents( IN AFSFcb *Fcb, while ((Offset->QuadPart + Length) > pEndExtent->FileOffset.QuadPart + pEndExtent->Size) { - pEndExtent = NextExtent(pEndExtent); + pEndExtent = NextExtent(pEndExtent, AFS_EXTENTS_LIST); if (liLastCacheOffset.QuadPart != pEndExtent->CacheOffset.QuadPart) { // @@ -143,7 +141,7 @@ AFSSetupIoRun( IN PDEVICE_OBJECT CacheDevice, // // Collapse the read if we can // - pNextExtent = NextExtent( pExtent ); + pNextExtent = NextExtent( pExtent, AFS_EXTENTS_LIST); if (pNextExtent->CacheOffset.QuadPart != (pExtent->CacheOffset.QuadPart + pExtent->Size)) @@ -389,16 +387,6 @@ AFSCompleteIo( IN AFSGatherIo *Gather, } } -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, @@ -440,7 +428,7 @@ AFSProcessExtentRun( IN PVOID SystemBuffer, // // Collapse the read if we can // - pNextExtent = NextExtent( pExtent ); + pNextExtent = NextExtent( pExtent, AFS_EXTENTS_LIST); if (pNextExtent->CacheOffset.QuadPart != (pExtent->CacheOffset.QuadPart + pExtent->Size)) diff --git a/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h b/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h index 5bba777..0b66669 100644 --- a/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h +++ b/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h @@ -436,6 +436,9 @@ AFSRemoveEntryDirtyList( IN AFSFcb *Fcb, AFSExtent * ExtentFor( PLIST_ENTRY le, ULONG SkipList ); +AFSExtent * +NextExtent( AFSExtent *Extent, ULONG SkipList ); + ULONG AFSConstructCleanByteRangeList( AFSFcb * pFcb, AFSByteRange ** pByteRangeList);