target: remove the t_task_cdbs_ex_left field in struct se_cmd
Now that tasks are gone we are guaranteed to only get a single completion per command, and thus don't need this counter. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
226b6faf2e
commit
d43d6aea84
3 changed files with 1 additions and 14 deletions
|
@ -333,13 +333,6 @@ static void core_tmr_drain_state_list(
|
||||||
spin_lock_irqsave(&cmd->t_state_lock, flags);
|
spin_lock_irqsave(&cmd->t_state_lock, flags);
|
||||||
target_stop_cmd(cmd, &flags);
|
target_stop_cmd(cmd, &flags);
|
||||||
|
|
||||||
if (!atomic_dec_and_test(&cmd->t_task_cdbs_ex_left)) {
|
|
||||||
spin_unlock_irqrestore(&cmd->t_state_lock, flags);
|
|
||||||
pr_debug("LUN_RESET: Skipping cmd: %p, dev: %p for"
|
|
||||||
" t_task_cdbs_ex_left: %d\n", cmd, dev,
|
|
||||||
atomic_read(&cmd->t_task_cdbs_ex_left));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fe_count = atomic_read(&cmd->t_fe_count);
|
fe_count = atomic_read(&cmd->t_fe_count);
|
||||||
|
|
||||||
if (!(cmd->transport_state & CMD_T_ACTIVE)) {
|
if (!(cmd->transport_state & CMD_T_ACTIVE)) {
|
||||||
|
|
|
@ -457,7 +457,6 @@ static void target_remove_from_state_list(struct se_cmd *cmd)
|
||||||
spin_lock_irqsave(&dev->execute_task_lock, flags);
|
spin_lock_irqsave(&dev->execute_task_lock, flags);
|
||||||
if (cmd->state_active) {
|
if (cmd->state_active) {
|
||||||
list_del(&cmd->state_list);
|
list_del(&cmd->state_list);
|
||||||
atomic_dec(&cmd->t_task_cdbs_ex_left);
|
|
||||||
cmd->state_active = false;
|
cmd->state_active = false;
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&dev->execute_task_lock, flags);
|
spin_unlock_irqrestore(&dev->execute_task_lock, flags);
|
||||||
|
@ -1771,9 +1770,7 @@ void transport_generic_request_failure(struct se_cmd *cmd)
|
||||||
pr_debug("-----[ i_state: %d t_state: %d scsi_sense_reason: %d\n",
|
pr_debug("-----[ i_state: %d t_state: %d scsi_sense_reason: %d\n",
|
||||||
cmd->se_tfo->get_cmd_state(cmd),
|
cmd->se_tfo->get_cmd_state(cmd),
|
||||||
cmd->t_state, cmd->scsi_sense_reason);
|
cmd->t_state, cmd->scsi_sense_reason);
|
||||||
pr_debug("-----[ t_task_cdbs_ex_left: %d --"
|
pr_debug("-----[ CMD_T_ACTIVE: %d CMD_T_STOP: %d CMD_T_SENT: %d\n",
|
||||||
" CMD_T_ACTIVE: %d CMD_T_STOP: %d CMD_T_SENT: %d\n",
|
|
||||||
atomic_read(&cmd->t_task_cdbs_ex_left),
|
|
||||||
(cmd->transport_state & CMD_T_ACTIVE) != 0,
|
(cmd->transport_state & CMD_T_ACTIVE) != 0,
|
||||||
(cmd->transport_state & CMD_T_STOP) != 0,
|
(cmd->transport_state & CMD_T_STOP) != 0,
|
||||||
(cmd->transport_state & CMD_T_SENT) != 0);
|
(cmd->transport_state & CMD_T_SENT) != 0);
|
||||||
|
@ -3503,8 +3500,6 @@ int transport_generic_new_cmd(struct se_cmd *cmd)
|
||||||
atomic_inc(&cmd->t_fe_count);
|
atomic_inc(&cmd->t_fe_count);
|
||||||
atomic_inc(&cmd->t_se_count);
|
atomic_inc(&cmd->t_se_count);
|
||||||
|
|
||||||
atomic_set(&cmd->t_task_cdbs_ex_left, 1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For WRITEs, let the fabric know its buffer is ready.
|
* For WRITEs, let the fabric know its buffer is ready.
|
||||||
*
|
*
|
||||||
|
|
|
@ -549,7 +549,6 @@ struct se_cmd {
|
||||||
unsigned long long t_task_lba;
|
unsigned long long t_task_lba;
|
||||||
atomic_t t_fe_count;
|
atomic_t t_fe_count;
|
||||||
atomic_t t_se_count;
|
atomic_t t_se_count;
|
||||||
atomic_t t_task_cdbs_ex_left;
|
|
||||||
unsigned int transport_state;
|
unsigned int transport_state;
|
||||||
#define CMD_T_ABORTED (1 << 0)
|
#define CMD_T_ABORTED (1 << 0)
|
||||||
#define CMD_T_ACTIVE (1 << 1)
|
#define CMD_T_ACTIVE (1 << 1)
|
||||||
|
|
Loading…
Reference in a new issue