Ewan D. Milne 5ae17501bc scsi: core: Avoid leaving shost->last_reset with stale value if EH does not run
The changes to issue the abort from the scmd->abort_work instead of the EH
thread introduced a problem if eh_deadline is used.  If aborting the
command(s) is successful, and there are never any scmds added to the
shost->eh_cmd_q, there is no code path which will reset the ->last_reset
value back to zero.

The effect of this is that after a successful abort with no EH thread
activity, a subsequent timeout, perhaps a long time later, might
immediately be considered past a user-set eh_deadline time, and the host
will be reset with no attempt at recovery.

Fix this by resetting ->last_reset back to zero in scmd_eh_abort_handler()
if it is determined that the EH thread will not run to do this.

Thanks to Gopinath Marappan for investigating this problem.

Link: https://lore.kernel.org/r/20211029194311.17504-2-emilne@redhat.com
Fixes: e494f6a72839 ("[SCSI] improved eh timeout handler")
Cc: stable@vger.kernel.org
Signed-off-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-11-03 21:33:50 -04:00
..
2021-07-11 10:59:53 -07:00
2021-10-16 21:45:54 -04:00
2020-03-11 23:07:59 -04:00
2021-01-22 21:14:08 -05:00
2021-01-22 21:14:07 -05:00
2021-01-22 21:14:08 -05:00
2020-03-11 23:07:59 -04:00
2021-10-16 21:45:55 -04:00
2020-09-02 22:49:06 -04:00
2021-10-16 21:45:56 -04:00
2021-04-13 00:20:48 -04:00
2020-12-07 20:24:09 -05:00
2021-10-16 21:29:15 -04:00
2021-10-16 21:45:57 -04:00
2021-10-16 21:45:57 -04:00
2020-12-07 20:24:09 -05:00
2021-05-21 16:59:33 -04:00
2021-03-24 23:03:43 -04:00
2020-10-14 15:15:35 -07:00
2021-09-02 15:09:46 -07:00
2021-10-27 23:12:46 -04:00
2020-02-24 15:01:57 -05:00
2021-08-23 12:54:30 -06:00
2021-04-13 00:20:48 -04:00