@@ -54,13 +54,13 @@ invoking hostt->queuecommand() or the block layer will time it out.
54
54
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55
55
56
56
For all non-EH commands, scsi_done() is the completion callback. It
57
- just calls blk_complete_request () to delete the block layer timer and
58
- raise SCSI_SOFTIRQ
57
+ just calls blk_mq_complete_request () to delete the block layer timer and
58
+ raise BLOCK_SOFTIRQ.
59
59
60
- SCSI_SOFTIRQ handler scsi_softirq calls scsi_decide_disposition() to
61
- determine what to do with the command. scsi_decide_disposition()
62
- looks at the scmd->result value and sense data to determine what to do
63
- with the command.
60
+ The BLOCK_SOFTIRQ indirectly calls scsi_complete(), which calls
61
+ scsi_decide_disposition() to determine what to do with the command.
62
+ scsi_decide_disposition() looks at the scmd->result value and sense
63
+ data to determine what to do with the command.
64
64
65
65
- SUCCESS
66
66
@@ -110,7 +110,7 @@ The timeout handler is scsi_timeout(). When a timeout occurs, this function
110
110
retry which failed), when retries are exceeded, or when the EH deadline is
111
111
expired. In these cases Step #3 is taken.
112
112
113
- 3. scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD ) is invoked for the
113
+ 3. scsi_eh_scmd_add(scmd) is invoked for the
114
114
command. See [1-4] for more information.
115
115
116
116
1.3 Asynchronous command aborts
@@ -277,7 +277,6 @@ scmd->allowed.
277
277
278
278
:ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd
279
279
280
- - scsi_setup_cmd_retry()
281
280
- move from local eh_work_q to local eh_done_q
282
281
283
282
:LOCKING: none
@@ -317,7 +316,7 @@ scmd->allowed.
317
316
``scsi_eh_get_sense ``
318
317
319
318
This action is taken for each error-completed
320
- (!SCSI_EH_CANCEL_CMD) commands without valid sense data. Most
319
+ command without valid sense data. Most
321
320
SCSI transports/LLDDs automatically acquire sense data on
322
321
command failures (autosense). Autosense is recommended for
323
322
performance reasons and as sense information could get out of
@@ -347,30 +346,6 @@ scmd->allowed.
347
346
- otherwise
348
347
No action.
349
348
350
- 3. If !list_empty(&eh_work_q), invoke scsi_eh_abort_cmds().
351
-
352
- ``scsi_eh_abort_cmds ``
353
-
354
- This action is taken for each timed out command when
355
- no_async_abort is enabled in the host template.
356
- hostt->eh_abort_handler() is invoked for each scmd. The
357
- handler returns SUCCESS if it has succeeded to make LLDD and
358
- all related hardware forget about the scmd.
359
-
360
- If a timedout scmd is successfully aborted and the sdev is
361
- either offline or ready, scsi_eh_finish_cmd() is invoked for
362
- the scmd. Otherwise, the scmd is left in eh_work_q for
363
- higher-severity actions.
364
-
365
- Note that both offline and ready status mean that the sdev is
366
- ready to process new scmds, where processing also implies
367
- immediate failing; thus, if a sdev is in one of the two
368
- states, no further recovery action is needed.
369
-
370
- Device readiness is tested using scsi_eh_tur() which issues
371
- TEST_UNIT_READY command. Note that the scmd must have been
372
- aborted successfully before reusing it for TEST_UNIT_READY.
373
-
374
349
4. If !list_empty(&eh_work_q), invoke scsi_eh_ready_devs()
375
350
376
351
``scsi_eh_ready_devs ``
@@ -384,7 +359,7 @@ scmd->allowed.
384
359
385
360
For each sdev which has failed scmds with valid sense data
386
361
of which scsi_check_sense()'s verdict is FAILED,
387
- START_STOP_UNIT command is issued w/ start=1. Note that
362
+ START STOP UNIT command is issued w/ start=1. Note that
388
363
as we explicitly choose error-completed scmds, it is known
389
364
that lower layers have forgotten about the scmd and we can
390
365
reuse it for STU.
@@ -478,9 +453,6 @@ except for #1 must be implemented by eh_strategy_handler().
478
453
479
454
- shost->host_failed is zero.
480
455
481
- - Each scmd is in such a state that scsi_setup_cmd_retry() on the
482
- scmd doesn't make any difference.
483
-
484
456
- shost->eh_cmd_q is cleared.
485
457
486
458
- Each scmd->eh_entry is cleared.
0 commit comments