diff options
author | Andrey Konovalov <andrey.konovalov@linaro.org> | 2012-12-20 00:10:48 +0400 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2012-12-20 00:10:48 +0400 |
commit | c19ae9c2483f0253bb58d3d3c28ac20386df6066 (patch) | |
tree | 9e3339fd0c9ac3285839626b25bb8d30bea60abd /drivers/target/target_core_transport.c | |
parent | 836f44a71d886bc81551597612e3b1797133985f (diff) | |
parent | b2824f4e0990716407b0c0e7acee75bb6353febf (diff) |
Automatically merging tracking-linux-3.6.y into merge-linux-linaro-core-3.6linux-linaro-core-3.6-20121220.0
Conflicting files:
Diffstat (limited to 'drivers/target/target_core_transport.c')
-rw-r--r-- | drivers/target/target_core_transport.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 269f54488397..c87ef744606a 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -1553,7 +1553,6 @@ static void target_complete_tmr_failure(struct work_struct *work) se_cmd->se_tmr_req->response = TMR_LUN_DOES_NOT_EXIST; se_cmd->se_tfo->queue_tm_rsp(se_cmd); - transport_generic_free_cmd(se_cmd, 0); } /** @@ -1757,8 +1756,10 @@ void target_execute_cmd(struct se_cmd *cmd) /* * If the received CDB has aleady been aborted stop processing it here. */ - if (transport_check_aborted_status(cmd, 1)) + if (transport_check_aborted_status(cmd, 1)) { + complete(&cmd->t_transport_stop_comp); return; + } /* * Determine if IOCTL context caller in requesting the stopping of this @@ -3030,7 +3031,7 @@ void transport_send_task_abort(struct se_cmd *cmd) unsigned long flags; spin_lock_irqsave(&cmd->t_state_lock, flags); - if (cmd->se_cmd_flags & SCF_SENT_CHECK_CONDITION) { + if (cmd->se_cmd_flags & (SCF_SENT_CHECK_CONDITION | SCF_SENT_DELAYED_TAS)) { spin_unlock_irqrestore(&cmd->t_state_lock, flags); return; } |