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>
This commit is contained in:
Hannes Reinecke 2016-02-19 09:17:01 +01:00 committed by Martin K. Petersen
parent b246075666
commit dd5cc4086b

View File

@ -674,6 +674,8 @@ static int alua_activate(struct scsi_device *sdev,
h->flags |= ALUA_OPTIMIZE_STPG; h->flags |= ALUA_OPTIMIZE_STPG;
err = alua_stpg(sdev, h); err = alua_stpg(sdev, h);
if (err == SCSI_DH_RETRY)
err = alua_rtpg(sdev, h, 1);
out: out:
if (fn) if (fn)
fn(data, err); fn(data, err);