if (__BlockRingPutTag(BlockRing, Response->id, &Tag)) {
++BlockRing->Recieved;
--BlockRing->Outstanding;
- PdoCompleteSubmitted(Pdo, Tag, Response->status);
+ PdoCompleteResponse(Pdo, Tag, Response->status);
}
RtlZeroMemory(Response, sizeof(union blkif_sring_entry));
)
{
BlockRingPoll(Frontend->BlockRing);
- PdoPrepareFresh(Frontend->Pdo);
- PdoSubmitPrepared(Frontend->Pdo);
- PdoCompleteShutdown(Frontend->Pdo);
+ PdoSubmitRequests(Frontend->Pdo);
}
//=============================================================================
//=============================================================================
// Queue-Related
-VOID
+static FORCEINLINE VOID
PdoPrepareFresh(
__in PXENVBD_PDO Pdo
)
}
}
-VOID
+static FORCEINLINE VOID
PdoSubmitPrepared(
__in PXENVBD_PDO Pdo
)
}
}
+static FORCEINLINE VOID
+PdoCompleteShutdown(
+ __in PXENVBD_PDO Pdo
+ )
+{
+ if (QueueCount(&Pdo->ShutdownSrbs) == 0)
+ return;
+
+ if (QueueCount(&Pdo->FreshSrbs) ||
+ QueueCount(&Pdo->PreparedReqs) ||
+ QueueCount(&Pdo->SubmittedReqs))
+ return;
+
+ for (;;) {
+ PXENVBD_SRBEXT SrbExt;
+ PLIST_ENTRY Entry = QueuePop(&Pdo->ShutdownSrbs);
+ if (Entry == NULL)
+ break;
+ SrbExt = CONTAINING_RECORD(Entry, XENVBD_SRBEXT, Entry);
+ SrbExt->Srb->SrbStatus = SRB_STATUS_SUCCESS;
+ FdoCompleteSrb(PdoGetFdo(Pdo), SrbExt->Srb);
+ }
+}
+
static FORCEINLINE PCHAR
BlkifOperationName(
IN UCHAR Operation
}
VOID
-PdoCompleteSubmitted(
+PdoSubmitRequests(
+ __in PXENVBD_PDO Pdo
+ )
+{
+ PdoPrepareFresh(Pdo);
+ PdoSubmitPrepared(Pdo);
+ PdoCompleteShutdown(Pdo);
+}
+
+VOID
+PdoCompleteResponse(
__in PXENVBD_PDO Pdo,
__in ULONG Tag,
__in SHORT Status
}
}
-VOID
-PdoCompleteShutdown(
- __in PXENVBD_PDO Pdo
- )
-{
- if (QueueCount(&Pdo->ShutdownSrbs) == 0)
- return;
-
- if (QueueCount(&Pdo->FreshSrbs) ||
- QueueCount(&Pdo->PreparedReqs) ||
- QueueCount(&Pdo->SubmittedReqs))
- return;
-
- for (;;) {
- PXENVBD_SRBEXT SrbExt;
- PLIST_ENTRY Entry = QueuePop(&Pdo->ShutdownSrbs);
- if (Entry == NULL)
- break;
- SrbExt = CONTAINING_RECORD(Entry, XENVBD_SRBEXT, Entry);
- SrbExt->Srb->SrbStatus = SRB_STATUS_SUCCESS;
- FdoCompleteSrb(PdoGetFdo(Pdo), SrbExt->Srb);
- }
-}
-
VOID
PdoPreResume(
__in PXENVBD_PDO Pdo