sys: FspFileNodeCleanupFlush:

- CcFlushCache now happens during initial Cleanup call
- avoids recursive call into file system during Cleanup completion
This commit is contained in:
Bill Zissimopoulos
2018-04-23 14:30:38 -07:00
parent 157c4bc09a
commit c2f87029d7
3 changed files with 62 additions and 19 deletions

View File

@ -123,6 +123,8 @@ static NTSTATUS FspFsvolCleanup(
FspFileNodeSetOwner(FileNode, Full, Request);
FspIopRequestContext(Request, RequestIrp) = Irp;
FspFileNodeCleanupFlush(FileNode, FileObject);
if (Request->Req.Cleanup.Delete ||
Request->Req.Cleanup.SetAllocationSize ||
Request->Req.Cleanup.SetArchiveBit ||
@ -228,10 +230,9 @@ static VOID FspFsvolCleanupRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Co
ASSERT(FileNode == FileDesc->FileNode);
FspFileNodeCleanupComplete(FileNode, FileObject);
FspFileNodeReleaseOwner(FileNode, Pgio, Request);
FspFileNodeCleanupComplete(FileNode, FileObject);
if (!FileNode->IsDirectory)
FspFileNodeOplockCheck(FileNode, Irp);
SetFlag(FileObject->Flags, FO_CLEANUP_COMPLETE);