diff options
-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 | ||