isci: Handle timed-out request terminations correctly
In the situation where a termination of an I/O times-out, make sure that the linkage from the request to the task is severed completely. Also make sure that the selection of tasks to terminate occurs under scic_lock. Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:

zatwierdzone przez
Dan Williams

rodzic
f53a3a32c1
commit
77c852f312
@@ -2741,6 +2741,15 @@ static void isci_request_io_request_complete(struct isci_host *isci_host,
|
||||
spin_unlock(&request->state_lock);
|
||||
break;
|
||||
|
||||
case dead:
|
||||
/* This was a terminated request that timed-out during the
|
||||
* termination process. There is no task to complete to
|
||||
* libsas.
|
||||
*/
|
||||
complete_to_host = isci_perform_normal_io_completion;
|
||||
spin_unlock(&request->state_lock);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* The request is done from an SCU HW perspective. */
|
||||
|
Reference in New Issue
Block a user