On Fri, Dec 20, 2013 at 8:13 PM, Hannes Reinecke <h...@suse.de> wrote:
> 
> +static void alua_rtpg_work(struct work_struct *work)
> +{
> ..........
> +       if (pg->flags & ALUA_PG_RUN_STPG) {
> +               spin_unlock_irqrestore(&pg->rtpg_lock, flags);
> +               err = alua_stpg(sdev, pg);
> +               spin_lock_irqsave(&pg->rtpg_lock, flags);
> +               pg->flags &= ~ALUA_PG_RUN_STPG;
> +               pg->flags |= ALUA_PG_STPG_DONE;
> +               if (err == SCSI_DH_RETRY) {
> +                       pg->flags |= ALUA_PG_RUN_RTPG;
> +                       pg->interval = ALUA_RTPG_DELAY_MSECS * 1000;
>

Is the line above a typo?

pg->interval is measured in second unit. You won't want to set it as
milliseconds*1000. And ALUA_RTPG_DELAY_MSECS is used for queueing delayed rtpg
work, not for delay in retry cases such as state of transitioning. What you
want may be set a new delay time to start, similar to "pg->interval += 2" in
alua_rtpg when state of transitioning is returned.

Thanks,
Vaughan
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to