aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2014-06-06 02:37:00 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2014-06-06 04:21:12 -0400
commite7810c2d2c37fa8e58dda74b00790dab60fe6fba (patch)
treefe484bce9b8121904c2ae08f0eee246e757caca3 /drivers/target
parent2363d196686e44c0158929e7cf96c8589a24a81b (diff)
target: Allow READ_CAPACITY opcode in ALUA Standby access state
This patch allows READ_CAPACITY + SAI_READ_CAPACITY_16 opcode processing to occur while the associated ALUA group is in Standby access state. This is required to avoid host side LUN probe failures during the initial scan if an ALUA group has already implicitly changed into Standby access state. This addresses a bug reported by Chris + Philip using dm-multipath + ESX hosts configured with ALUA multipath. Reported-by: Chris Boot <crb@tiger-computing.co.uk> Reported-by: Philip Gaw <pgaw@darktech.org.uk> Cc: Chris Boot <crb@tiger-computing.co.uk> Cc: Philip Gaw <pgaw@darktech.org.uk> Cc: Hannes Reinecke <hare@suse.de> Cc: stable@vger.kernel.org Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/target_core_alua.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
index fcbe6125b73e..63512cc01a1f 100644
--- a/drivers/target/target_core_alua.c
+++ b/drivers/target/target_core_alua.c
@@ -576,7 +576,16 @@ static inline int core_alua_state_standby(
576 case REPORT_LUNS: 576 case REPORT_LUNS:
577 case RECEIVE_DIAGNOSTIC: 577 case RECEIVE_DIAGNOSTIC:
578 case SEND_DIAGNOSTIC: 578 case SEND_DIAGNOSTIC:
579 case READ_CAPACITY:
579 return 0; 580 return 0;
581 case SERVICE_ACTION_IN:
582 switch (cdb[1] & 0x1f) {
583 case SAI_READ_CAPACITY_16:
584 return 0;
585 default:
586 set_ascq(cmd, ASCQ_04H_ALUA_TG_PT_STANDBY);
587 return 1;
588 }
580 case MAINTENANCE_IN: 589 case MAINTENANCE_IN:
581 switch (cdb[1] & 0x1f) { 590 switch (cdb[1] & 0x1f) {
582 case MI_REPORT_TARGET_PGS: 591 case MI_REPORT_TARGET_PGS: