aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Reinecke <[email protected]>2016-02-19 09:17:01 +0100
committerMartin K. Petersen <[email protected]>2016-02-23 21:27:02 -0500
commitdd5cc4086bda53c2cd1a845c472816719d1dd50c (patch)
tree8aa04b85575ad59bb6e580973bb3ea6cea14e4f3
parentb2460756660c6a6d1be8e35a18521d5c2a3f5823 (diff)
scsi_dh_alua: call alua_rtpg() if stpg fails
If the call to SET TARGET PORT GROUPS fails we have no idea what state the array is left in, so we need to issue a call to REPORT TARGET PORT GROUPS in these cases. Reviewed-by: Bart Van Assche <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
-rw-r--r--drivers/scsi/device_handler/scsi_dh_alua.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 467c2cfd09b8..b2a2a771badc 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -674,6 +674,8 @@ static int alua_activate(struct scsi_device *sdev,
h->flags |= ALUA_OPTIMIZE_STPG;
err = alua_stpg(sdev, h);
+ if (err == SCSI_DH_RETRY)
+ err = alua_rtpg(sdev, h, 1);
out:
if (fn)
fn(data, err);