sys: IRP_MJ_QUERY_INFORMATION: correctly retry IRP completion

This commit is contained in:
Bill Zissimopoulos 2016-02-07 16:55:08 -08:00
parent 2a303827a2
commit 0ec5291c70

View File

@ -478,6 +478,7 @@ NTSTATUS FspFsvolQueryInformationComplete(
FSP_FSCTL_TRANSACT_REQ *Request = FspIrpRequest(Irp);
FSP_FSCTL_FILE_INFO FileInfoBuf;
const FSP_FSCTL_FILE_INFO *FileInfo;
BOOLEAN Success;
if (0 != FspIopRequestContext(Request, RequestFileNode))
{
@ -487,9 +488,14 @@ NTSTATUS FspFsvolQueryInformationComplete(
FspFileNodeReleaseOwner(FileNode, Full, Request);
}
if (!FspFileNodeTryAcquireExclusive(FileNode, Main))
Success = DEBUGRANDTEST(90, TRUE) && FspFileNodeTryAcquireExclusive(FileNode, Main);
if (!Success)
{
FspIopRetryCompleteIrp(Irp, Response, &Result);
return Result;
}
if (!FspFileNodeTrySetFileInfo(FileNode, FileObject, &Response->Rsp.QueryInformation.FileInfo,
(ULONG)(UINT_PTR)FspIopRequestContext(Request, RequestInfoChangeNumber)))
{