summary refs log tree commit diff
path: root/Documentation
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@HansenPartnership.com>2016-06-18 11:59:01 -0700
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2016-06-18 11:59:01 -0700
commit951d77fd5a541d68eeb7372e72cd4757e3058517 (patch)
tree74ddfe541cc01e61dbcaf946b604c01863637c65 /Documentation
parent27ea13e6186c1a5bd0fa2b0d6f854d60ca4ca4c9 (diff)
parent8beb330044d0d1878c7b92290e91c0b889e92633 (diff)
downloadlinux-951d77fd5a541d68eeb7372e72cd4757e3058517.tar.gz
Merge remote-tracking branch 'mkp-scsi/4.7/scsi-fixes' into fixes
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/scsi/scsi_eh.txt8
1 files changed, 6 insertions, 2 deletions
diff --git a/Documentation/scsi/scsi_eh.txt b/Documentation/scsi/scsi_eh.txt
index 8638f61c8c9d..37eca00796ee 100644
--- a/Documentation/scsi/scsi_eh.txt
+++ b/Documentation/scsi/scsi_eh.txt
@@ -263,19 +263,23 @@ scmd->allowed.
 
  3. scmd recovered
     ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd
-	- shost->host_failed--
 	- clear scmd->eh_eflags
 	- scsi_setup_cmd_retry()
 	- move from local eh_work_q to local eh_done_q
     LOCKING: none
+    CONCURRENCY: at most one thread per separate eh_work_q to
+		 keep queue manipulation lockless
 
  4. EH completes
     ACTION: scsi_eh_flush_done_q() retries scmds or notifies upper
-	    layer of failure.
+	    layer of failure. May be called concurrently but must have
+	    a no more than one thread per separate eh_work_q to
+	    manipulate the queue locklessly
 	- scmd is removed from eh_done_q and scmd->eh_entry is cleared
 	- if retry is necessary, scmd is requeued using
           scsi_queue_insert()
 	- otherwise, scsi_finish_command() is invoked for scmd
+	- zero shost->host_failed
     LOCKING: queue or finish function performs appropriate locking