mirror of https://gitee.com/openkylin/linux.git
target: Drop legacy se_cmd->task_stop_comp + REQUEST_STOP usage
With CMD_T_FABRIC_STOP + se_cmd->cmd_wait_set usage in place, go ahead and drop left-over CMD_T_REQUEST_STOP checks in target_complete_cmd() and unused target_stop_cmd(). Reviewed-by: Christoph Hellwig <hch@lst.de> Cc: Quinn Tran <quinn.tran@qlogic.com> Cc: Himanshu Madhani <himanshu.madhani@qlogic.com> Cc: Sagi Grimberg <sagig@mellanox.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Andy Grover <agrover@redhat.com> Cc: Mike Christie <mchristi@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
310d3d314b
commit
57dae19065
|
@ -141,7 +141,6 @@ void transport_dump_vpd_proto_id(struct t10_vpd *, unsigned char *, int);
|
|||
int transport_dump_vpd_assoc(struct t10_vpd *, unsigned char *, int);
|
||||
int transport_dump_vpd_ident_type(struct t10_vpd *, unsigned char *, int);
|
||||
int transport_dump_vpd_ident(struct t10_vpd *, unsigned char *, int);
|
||||
bool target_stop_cmd(struct se_cmd *cmd, unsigned long *flags);
|
||||
void transport_clear_lun_ref(struct se_lun *);
|
||||
void transport_send_task_abort(struct se_cmd *);
|
||||
sense_reason_t target_cmd_size_check(struct se_cmd *cmd, unsigned int size);
|
||||
|
|
|
@ -692,15 +692,6 @@ void target_complete_cmd(struct se_cmd *cmd, u8 scsi_status)
|
|||
success = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* See if we are waiting to complete for an exception condition.
|
||||
*/
|
||||
if (cmd->transport_state & CMD_T_REQUEST_STOP) {
|
||||
spin_unlock_irqrestore(&cmd->t_state_lock, flags);
|
||||
complete(&cmd->task_stop_comp);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for case where an explicit ABORT_TASK has been received
|
||||
* and transport_wait_for_tasks() will be waiting for completion..
|
||||
|
@ -1202,7 +1193,6 @@ void transport_init_se_cmd(
|
|||
INIT_LIST_HEAD(&cmd->state_list);
|
||||
init_completion(&cmd->t_transport_stop_comp);
|
||||
init_completion(&cmd->cmd_wait_comp);
|
||||
init_completion(&cmd->task_stop_comp);
|
||||
spin_lock_init(&cmd->t_state_lock);
|
||||
kref_init(&cmd->cmd_kref);
|
||||
cmd->transport_state = CMD_T_DEV_ACTIVE;
|
||||
|
@ -1633,33 +1623,6 @@ int target_submit_tmr(struct se_cmd *se_cmd, struct se_session *se_sess,
|
|||
}
|
||||
EXPORT_SYMBOL(target_submit_tmr);
|
||||
|
||||
/*
|
||||
* If the cmd is active, request it to be stopped and sleep until it
|
||||
* has completed.
|
||||
*/
|
||||
bool target_stop_cmd(struct se_cmd *cmd, unsigned long *flags)
|
||||
__releases(&cmd->t_state_lock)
|
||||
__acquires(&cmd->t_state_lock)
|
||||
{
|
||||
bool was_active = false;
|
||||
|
||||
if (cmd->transport_state & CMD_T_BUSY) {
|
||||
cmd->transport_state |= CMD_T_REQUEST_STOP;
|
||||
spin_unlock_irqrestore(&cmd->t_state_lock, *flags);
|
||||
|
||||
pr_debug("cmd %p waiting to complete\n", cmd);
|
||||
wait_for_completion(&cmd->task_stop_comp);
|
||||
pr_debug("cmd %p stopped successfully\n", cmd);
|
||||
|
||||
spin_lock_irqsave(&cmd->t_state_lock, *flags);
|
||||
cmd->transport_state &= ~CMD_T_REQUEST_STOP;
|
||||
cmd->transport_state &= ~CMD_T_BUSY;
|
||||
was_active = true;
|
||||
}
|
||||
|
||||
return was_active;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle SAM-esque emulation for generic transport request failures.
|
||||
*/
|
||||
|
|
|
@ -491,7 +491,6 @@ struct se_cmd {
|
|||
#define CMD_T_SENT (1 << 4)
|
||||
#define CMD_T_STOP (1 << 5)
|
||||
#define CMD_T_DEV_ACTIVE (1 << 7)
|
||||
#define CMD_T_REQUEST_STOP (1 << 8)
|
||||
#define CMD_T_BUSY (1 << 9)
|
||||
#define CMD_T_TAS (1 << 10)
|
||||
#define CMD_T_FABRIC_STOP (1 << 11)
|
||||
|
@ -514,9 +513,6 @@ struct se_cmd {
|
|||
|
||||
struct list_head state_list;
|
||||
|
||||
/* old task stop completion, consider merging with some of the above */
|
||||
struct completion task_stop_comp;
|
||||
|
||||
/* backend private data */
|
||||
void *priv;
|
||||
|
||||
|
|
Loading…
Reference in New Issue