diff options
author | Jeff Skirvin <jeffrey.d.skirvin@intel.com> | 2011-06-20 17:09:11 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 07:04:50 -0400 |
commit | f53a3a32c1e799e27f63bff7b42b4c36749e5e6f (patch) | |
tree | 0861e3c856227ad8d910b764ca9d6a91d1887240 /drivers/scsi | |
parent | cde76fbf1f27551a08860227765ae8d5026ac0d9 (diff) |
isci: Requests that do not start must be set to "complete"
Requests that fail at start because of a reset pending condition
must be set to complete in order to allow for later cleanup.
Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/isci/request.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c index 3a891d32c331..5879e5f308e6 100644 --- a/drivers/scsi/isci/request.c +++ b/drivers/scsi/isci/request.c | |||
@@ -3678,18 +3678,19 @@ int isci_request_execute( | |||
3678 | * Update it's status and add it to the list in the | 3678 | * Update it's status and add it to the list in the |
3679 | * remote device object. | 3679 | * remote device object. |
3680 | */ | 3680 | */ |
3681 | isci_request_change_state(request, started); | ||
3682 | list_add(&request->dev_node, &isci_device->reqs_in_process); | 3681 | list_add(&request->dev_node, &isci_device->reqs_in_process); |
3683 | 3682 | ||
3684 | if (status == SCI_SUCCESS) { | 3683 | if (status == SCI_SUCCESS) { |
3685 | /* Save the tag for possible task mgmt later. */ | 3684 | /* Save the tag for possible task mgmt later. */ |
3686 | request->io_tag = request->sci.io_tag; | 3685 | request->io_tag = request->sci.io_tag; |
3686 | isci_request_change_state(request, started); | ||
3687 | } else { | 3687 | } else { |
3688 | /* The request did not really start in the | 3688 | /* The request did not really start in the |
3689 | * hardware, so clear the request handle | 3689 | * hardware, so clear the request handle |
3690 | * here so no terminations will be done. | 3690 | * here so no terminations will be done. |
3691 | */ | 3691 | */ |
3692 | request->terminated = true; | 3692 | request->terminated = true; |
3693 | isci_request_change_state(request, completed); | ||
3693 | } | 3694 | } |
3694 | spin_unlock_irqrestore(&isci_host->scic_lock, flags); | 3695 | spin_unlock_irqrestore(&isci_host->scic_lock, flags); |
3695 | 3696 | ||