|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 4/4] Abort any partially completed SRBs
From: Owen Smith <owen.smith@xxxxxxxxxx>
When disabling, a SRB may be comprised of requests that have been
prepared and completed. Set the SrbStatus as early as possible, so
that any partially completed SRB is always failed.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenvbd/ring.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/xenvbd/ring.c b/src/xenvbd/ring.c
index ef94513..33b346d 100644
--- a/src/xenvbd/ring.c
+++ b/src/xenvbd/ring.c
@@ -1972,13 +1972,13 @@ RingDisable(
SrbExt = Request->SrbExt;
Srb = SrbExt->Srb;
+ Srb->SrbStatus = SRB_STATUS_ABORTED;
+ Srb->ScsiStatus = 0x40; // SCSI_ABORTED
+
RingPutRequest(Ring, Request);
- if (InterlockedDecrement(&SrbExt->RequestCount) == 0) {
- Srb->SrbStatus = SRB_STATUS_ABORTED;
- Srb->ScsiStatus = 0x40; // SCSI_ABORTED
+ if (InterlockedDecrement(&SrbExt->RequestCount) == 0)
AdapterCompleteSrb(Adapter, SrbExt);
- }
}
}
--
2.8.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |