[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/8] scsi-disk: Allow READ CAPACITY in standby
From: |
Hannes Reinecke |
Subject: |
[Qemu-devel] [PATCH 6/8] scsi-disk: Allow READ CAPACITY in standby |
Date: |
Fri, 27 Nov 2015 15:59:04 +0100 |
SPC does not mandate to allow READ CAPACITY when in standby,
but linux currently relies on a valid capacity. Otherwise
requests will be retried from sd_prep_fn() and I/O will
never complete.
Signed-off-by: Hannes Reinecke <address@hidden>
---
hw/scsi/scsi-disk.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 59d09e4..b3ab890 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2278,6 +2278,22 @@ static int32_t scsi_disk_emulate_command(SCSIRequest
*req, uint8_t *buf)
transition_allowed = false;
unavailable_allowed = false;
break;
+ case SERVICE_ACTION_IN_16:
+ /*
+ * READ CAPACITY is not required by SPC,
+ * but Linux (currently) relies on a
+ * valid capacity, otherwise requests will
+ * be retried from sd.c:sd_prep_dn() and
+ * optimized-standby failover won't work.
+ */
+ if ((req->cmd.buf[1] & 0x31) != SAI_READ_CAPACITY_16) {
+ standby_allowed = false;
+ }
+ /* Fallthrough */
+ case READ_CAPACITY_10:
+ transition_allowed = false;
+ unavailable_allowed = false;
+ break;
default:
transition_allowed = false;
unavailable_allowed = false;
--
1.8.4.5
- [Qemu-devel] [PATCH RFC 0/8] scsi-disk: Active/passive ALUA support, Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 5/8] scsi-disk: implement ALUA policy, Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 4/8] scsi-disk: Implement 'SET TARGET PORT GROUPS', Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 8/8] block: Implement 'block_disconnect' HMP command, Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 3/8] scsi-disk: Implement 'REPORT TARGET PORT GROUPS', Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 1/8] scsi-disk: Add 'port_group' property, Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 6/8] scsi-disk: Allow READ CAPACITY in standby,
Hannes Reinecke <=
- [Qemu-devel] [PATCH 7/8] scsi-disk: Implement 'alua_preferred' option, Hannes Reinecke, 2015/11/27
- [Qemu-devel] [PATCH 2/8] scsi-disk: Add 'alua_state' property, Hannes Reinecke, 2015/11/27