mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-20 12:11:26 +00:00
qla2x00t-32gbit, target: Fix handling of aborted commands
Ignore the return value of qlt_abort_cmd(). git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8252 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1516,37 +1516,6 @@ static int sqa_target_release(struct scst_tgt *scst_tgt)
|
||||
|
||||
#define DATA_WORK_NOT_FREE(_cmd) (_cmd->data_work && !_cmd->data_work_free)
|
||||
|
||||
static void
|
||||
sqa_abort_task(struct scst_cmd *scst_cmd)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct qla_tgt_cmd *cmd;
|
||||
|
||||
TRACE_ENTRY();
|
||||
cmd = scst_cmd_get_tgt_priv(scst_cmd);
|
||||
|
||||
scst_set_delivery_status(scst_cmd, SCST_CMD_DELIVERY_ABORTED);
|
||||
|
||||
if (qlt_abort_cmd(cmd))
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&cmd->cmd_lock, flags);
|
||||
if ((cmd->state == QLA_TGT_STATE_NEW)||
|
||||
((cmd->state == QLA_TGT_STATE_DATA_IN) &&
|
||||
DATA_WORK_NOT_FREE(cmd)) ) {
|
||||
|
||||
cmd->data_work_free = 1;
|
||||
spin_unlock_irqrestore(&cmd->cmd_lock, flags);
|
||||
/* Cmd have not reached firmware.
|
||||
* Use this trigger to free it. */
|
||||
scst_tgt_cmd_done(scst_cmd, SCST_CONTEXT_TASKLET);
|
||||
return;
|
||||
}
|
||||
spin_unlock_irqrestore(&cmd->cmd_lock, flags);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
static int sqa_xmit_response(struct scst_cmd *scst_cmd)
|
||||
{
|
||||
int xmit_type = QLA_TGT_XMIT_DATA, res, residual=0;
|
||||
@@ -1560,8 +1529,9 @@ static int sqa_xmit_response(struct scst_cmd *scst_cmd)
|
||||
TRACE_MGMT_DBG("sqatgt(%ld/%d): CMD_ABORTED cmd[%p]",
|
||||
cmd->vha->host_no, cmd->vha->vp_idx,
|
||||
cmd);
|
||||
|
||||
sqa_abort_task(scst_cmd);
|
||||
qlt_abort_cmd(cmd);
|
||||
scst_set_delivery_status(scst_cmd, SCST_CMD_DELIVERY_ABORTED);
|
||||
scst_tgt_cmd_done(scst_cmd, SCST_CONTEXT_DIRECT);
|
||||
return SCST_TGT_RES_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user