On Fri, Dec 20, 2013 at 8:13 PM, Hannes Reinecke <hare@xxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html