diff options
author | Hannes Reinecke <hare@suse.de> | 2016-02-19 09:17:01 +0100 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-02-24 03:27:02 +0100 |
commit | dd5cc4086bda53c2cd1a845c472816719d1dd50c (patch) | |
tree | 8aa04b85575ad59bb6e580973bb3ea6cea14e4f3 /drivers/scsi/device_handler | |
parent | scsi_dh_alua: Make stpg synchronous (diff) | |
download | linux-dd5cc4086bda53c2cd1a845c472816719d1dd50c.tar.xz linux-dd5cc4086bda53c2cd1a845c472816719d1dd50c.zip |
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 <bart.vanassche@sandisk.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/device_handler')
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_alua.c | 2 |
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); |