Skip to content

Commit

Permalink
isci: Handle timed-out request terminations correctly
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff Skirvin authored and Dan Williams committed Jul 3, 2011
1 parent f53a3a3 commit 77c852f
Show file tree
Hide file tree
Showing 2 changed files with 181 additions and 186 deletions.
9 changes: 9 additions & 0 deletions drivers/scsi/isci/request.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
Loading

0 comments on commit 77c852f

Please sign in to comment.