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.

Reply via email to