sys: oplock fix

This commit is contained in:
Bill Zissimopoulos 2025-05-08 21:47:06 +01:00
parent 6803bb4136
commit d75e9f7ee6
3 changed files with 4 additions and 5 deletions

View File

@ -242,8 +242,7 @@ static VOID FspFsvolCleanupRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Co
FspFileNodeReleaseOwner(FileNode, Pgio, Request);
FspFileNodeCleanupComplete(FileNode, FileObject, !!Request->Req.Cleanup.Delete);
if (!FileNode->IsDirectory)
FspFileNodeOplockCheck(FileNode, Irp);
FspFileNodeOplockCheck(FileNode, Irp);
SetFlag(FileObject->Flags, FO_CLEANUP_COMPLETE);
MainFileHandle = FileDesc->MainFileHandle;

View File

@ -75,6 +75,9 @@ static NTSTATUS FspFsvolClose(
ASSERT(FileNode == FileDesc->FileNode);
if (!FlagOn(FileObject->Flags, FO_CLEANUP_COMPLETE))
FspFileNodeOplockCheck(FileNode, Irp);
/* create the user-mode file system request; MustSucceed because IRP_MJ_CLOSE cannot fail */
FspIopCreateRequestMustSucceed(0, 0, 0, &Request);
Request->Kind = FspFsctlTransactCloseKind;

View File

@ -441,9 +441,6 @@ static NTSTATUS FspFsvolFileSystemControlOplock(
ULONG OplockCount;
FSP_FSVOL_FILESYSTEM_CONTROL_OPLOCK_COMPLETION_CONTEXT *CompletionContext;
if (FileNode->IsDirectory)
return STATUS_INVALID_PARAMETER;
/*
* As per FastFat:
*