On Fri, 2017-12-08 at 11:14 +0100, Hannes Reinecke wrote: > @@ -541,6 +544,20 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg) > retval = submit_rtpg(sdev, buff, bufflen, &sense_hdr, pg->flags); > > if (retval) { > + /* > + * If the target only supports active/optimized there's > + * not much we can do; it's not that we can switch paths > + * or somesuch. > + * So ignore any errors to avoid spurious failures during > + * path failover. > + */ > + if ((pg->valid_states & ~TPGS_SUPPORT_OPTIMIZED) == 0) { > + sdev_printk(KERN_INFO, sdev, > + "%s: ignoring rtpg result %d\n", > + ALUA_DH_NAME, retval); > + kfree(buff); > + return SCSI_DH_OK; > + } Hello Hannes, Sorry but this change looks weird to me. If an RTPG fails, shouldn't alua_rtpg() return SCSI_DH_IO independent of what ALUA states the target supports? Are you perhaps trying to implement a work-around for an array that does not respond to RTPG during path transitions? Thanks, Bart.