mirror of
https://github.com/winfsp/winfsp.git
synced 2026-06-27 14:58:20 -05:00
sys: FspVolumeTransact: timeout early if there are retried IRP completions (to avoid stalling unnecessarily)
This commit is contained in:
+3
-1
@@ -619,7 +619,9 @@ NTSTATUS FspVolumeTransact(
|
||||
|
||||
/* wait for an IRP to arrive */
|
||||
KeQuerySystemTime(&Timeout);
|
||||
Timeout.QuadPart += FsvolDeviceExtension->VolumeParams.TransactTimeout * 10000ULL;
|
||||
Timeout.QuadPart += 0 == RepostedIrp ?
|
||||
FsvolDeviceExtension->VolumeParams.TransactTimeout * 10000ULL :
|
||||
FspVolumeTransactEarlyTimeout;
|
||||
/* convert millis to nanos and add to absolute time */
|
||||
while (0 == (PendingIrp = FspIoqNextPendingIrp(FsvolDeviceExtension->Ioq, 0, &Timeout, Irp)))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user