Windows: Refactor and consolidate afsredir invalidation
[openafs.git] / src / WINNT / afsrdr / kernel / lib / Include / AFSCommon.h
index adfd265..dca9a63 100644 (file)
@@ -391,11 +391,16 @@ NTSTATUS
 AFSReleaseExtentsWithFlush( IN AFSFcb *Fcb,
                             IN GUID *AuthGroup);
 
+NTSTATUS
+AFSReleaseCleanExtents( IN AFSFcb *Fcb,
+                        IN GUID *AuthGroup);
+
 VOID
 AFSMarkDirty( IN AFSFcb *pFcb,
               IN AFSExtent *StartExtent,
               IN ULONG ExtentsCount,
-              IN LARGE_INTEGER *StartingByte);
+              IN LARGE_INTEGER *StartingByte,
+              IN BOOLEAN DerefExtents);
 
 BOOLEAN
 AFSTearDownFcbExtents( IN AFSFcb *Fcb,
@@ -422,6 +427,9 @@ void
 AFSRemoveEntryDirtyList( IN AFSFcb *Fcb,
                          IN AFSExtent *Extent);
 
+AFSExtent *
+ExtentFor( PLIST_ENTRY le, ULONG SkipList );
+
 #if GEN_MD5
 void
 AFSSetupMD5Hash( IN AFSFcb *Fcb,
@@ -486,8 +494,7 @@ AFSClose( IN PDEVICE_OBJECT DeviceObject,
 //
 
 NTSTATUS
-AFSInitFcb( IN AFSDirectoryCB   *DirEntry,
-            IN OUT AFSFcb     **Fcb);
+AFSInitFcb( IN AFSDirectoryCB   *DirEntry);
 
 NTSTATUS
 AFSInitVolume( IN GUID *AuthGroup,
@@ -1107,6 +1114,10 @@ AFSValidateSymLink( IN GUID *AuthGroup,
 NTSTATUS
 AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB);
 
+NTSTATUS
+AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
+                     IN     ULONG Reason);
+
 BOOLEAN
 AFSIsChildOfParent( IN AFSFcb *Dcb,
                     IN AFSFcb *Fcb);
@@ -1373,6 +1384,10 @@ AFSRetrieveValidAuthGroup( IN AFSFcb *Fcb,
                            IN BOOLEAN WriteAccess,
                            OUT GUID *AuthGroup);
 
+NTSTATUS
+AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
+                            IN ULONG InvalidateReason);
+
 //
 // AFSWorker.cpp Prototypes
 //
@@ -1466,6 +1481,10 @@ AFSQueueStartIos( IN PFILE_OBJECT CacheFileObject,
                   IN ULONG RunCount,
                   IN AFSGatherIo *GatherIo);
 
+NTSTATUS
+AFSQueueInvalidateObject( IN AFSObjectInfoCB *ObjectInfo,
+                          IN ULONG InvalidateReason);
+
 //
 // AFSMD5Support.cpp Prototypes
 //