From: Hannes Reinecke Date: Fri, 19 Feb 2016 08:17:01 +0000 (+0100) Subject: scsi_dh_alua: call alua_rtpg() if stpg fails X-Git-Tag: v4.6-rc1~4^2~68 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=dd5cc4086bda53c2cd1a845c472816719d1dd50c;p=cascardo%2Flinux.git 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 Reviewed-by: Christoph Hellwig Signed-off-by: Hannes Reinecke Signed-off-by: Martin K. Petersen --- 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);