target: remove the always-noop ->new_cmd_failure method
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
a1d8b49abd
commit
dc2e652d5f
@ -772,16 +772,6 @@ static u32 tcm_loop_get_inst_index(struct se_portal_group *se_tpg)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tcm_loop_new_cmd_failure(struct se_cmd *se_cmd)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Since TCM_loop is already passing struct scatterlist data from
|
|
||||||
* struct scsi_cmnd, no more Linux/SCSI failure dependent state need
|
|
||||||
* to be handled here.
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int tcm_loop_is_state_remove(struct se_cmd *se_cmd)
|
static int tcm_loop_is_state_remove(struct se_cmd *se_cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -1446,7 +1436,6 @@ static int tcm_loop_register_configfs(void)
|
|||||||
&tcm_loop_set_default_node_attributes;
|
&tcm_loop_set_default_node_attributes;
|
||||||
fabric->tf_ops.get_task_tag = &tcm_loop_get_task_tag;
|
fabric->tf_ops.get_task_tag = &tcm_loop_get_task_tag;
|
||||||
fabric->tf_ops.get_cmd_state = &tcm_loop_get_cmd_state;
|
fabric->tf_ops.get_cmd_state = &tcm_loop_get_cmd_state;
|
||||||
fabric->tf_ops.new_cmd_failure = &tcm_loop_new_cmd_failure;
|
|
||||||
fabric->tf_ops.queue_data_in = &tcm_loop_queue_data_in;
|
fabric->tf_ops.queue_data_in = &tcm_loop_queue_data_in;
|
||||||
fabric->tf_ops.queue_status = &tcm_loop_queue_status;
|
fabric->tf_ops.queue_status = &tcm_loop_queue_status;
|
||||||
fabric->tf_ops.queue_tm_rsp = &tcm_loop_queue_tm_rsp;
|
fabric->tf_ops.queue_tm_rsp = &tcm_loop_queue_tm_rsp;
|
||||||
|
@ -479,10 +479,6 @@ static int target_fabric_tf_ops_check(
|
|||||||
printk(KERN_ERR "Missing tfo->get_cmd_state()\n");
|
printk(KERN_ERR "Missing tfo->get_cmd_state()\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (!(tfo->new_cmd_failure)) {
|
|
||||||
printk(KERN_ERR "Missing tfo->new_cmd_failure()\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
if (!(tfo->queue_data_in)) {
|
if (!(tfo->queue_data_in)) {
|
||||||
printk(KERN_ERR "Missing tfo->queue_data_in()\n");
|
printk(KERN_ERR "Missing tfo->queue_data_in()\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -356,11 +356,6 @@ int core_tmr_lun_reset(
|
|||||||
atomic_read(&cmd->t_fe_count));
|
atomic_read(&cmd->t_fe_count));
|
||||||
/*
|
/*
|
||||||
* Signal that the command has failed via cmd->se_cmd_flags,
|
* Signal that the command has failed via cmd->se_cmd_flags,
|
||||||
* and call TFO->new_cmd_failure() to wakeup any fabric
|
|
||||||
* dependent code used to wait for unsolicited data out
|
|
||||||
* allocation to complete. The fabric module is expected
|
|
||||||
* to dump any remaining unsolicited data out for the aborted
|
|
||||||
* command at this point.
|
|
||||||
*/
|
*/
|
||||||
transport_new_cmd_failure(cmd);
|
transport_new_cmd_failure(cmd);
|
||||||
|
|
||||||
|
@ -2586,8 +2586,6 @@ void transport_new_cmd_failure(struct se_cmd *se_cmd)
|
|||||||
se_cmd->se_cmd_flags |= SCF_SE_CMD_FAILED;
|
se_cmd->se_cmd_flags |= SCF_SE_CMD_FAILED;
|
||||||
se_cmd->se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION;
|
se_cmd->se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION;
|
||||||
spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
|
spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
|
||||||
|
|
||||||
se_cmd->se_tfo->new_cmd_failure(se_cmd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void transport_nop_wait_for_tasks(struct se_cmd *, int, int);
|
static void transport_nop_wait_for_tasks(struct se_cmd *, int, int);
|
||||||
|
@ -195,7 +195,6 @@ int ft_write_pending(struct se_cmd *);
|
|||||||
int ft_write_pending_status(struct se_cmd *);
|
int ft_write_pending_status(struct se_cmd *);
|
||||||
u32 ft_get_task_tag(struct se_cmd *);
|
u32 ft_get_task_tag(struct se_cmd *);
|
||||||
int ft_get_cmd_state(struct se_cmd *);
|
int ft_get_cmd_state(struct se_cmd *);
|
||||||
void ft_new_cmd_failure(struct se_cmd *);
|
|
||||||
int ft_queue_tm_resp(struct se_cmd *);
|
int ft_queue_tm_resp(struct se_cmd *);
|
||||||
int ft_is_state_remove(struct se_cmd *);
|
int ft_is_state_remove(struct se_cmd *);
|
||||||
|
|
||||||
|
@ -292,12 +292,6 @@ int ft_is_state_remove(struct se_cmd *se_cmd)
|
|||||||
return 0; /* XXX TBD */
|
return 0; /* XXX TBD */
|
||||||
}
|
}
|
||||||
|
|
||||||
void ft_new_cmd_failure(struct se_cmd *se_cmd)
|
|
||||||
{
|
|
||||||
/* XXX TBD */
|
|
||||||
printk(KERN_INFO "%s: se_cmd %p\n", __func__, se_cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FC sequence response handler for follow-on sequences (data) and aborts.
|
* FC sequence response handler for follow-on sequences (data) and aborts.
|
||||||
*/
|
*/
|
||||||
|
@ -550,7 +550,6 @@ static struct target_core_fabric_ops ft_fabric_ops = {
|
|||||||
.set_default_node_attributes = ft_set_default_node_attr,
|
.set_default_node_attributes = ft_set_default_node_attr,
|
||||||
.get_task_tag = ft_get_task_tag,
|
.get_task_tag = ft_get_task_tag,
|
||||||
.get_cmd_state = ft_get_cmd_state,
|
.get_cmd_state = ft_get_cmd_state,
|
||||||
.new_cmd_failure = ft_new_cmd_failure,
|
|
||||||
.queue_data_in = ft_queue_data_in,
|
.queue_data_in = ft_queue_data_in,
|
||||||
.queue_status = ft_queue_status,
|
.queue_status = ft_queue_status,
|
||||||
.queue_tm_rsp = ft_queue_tm_resp,
|
.queue_tm_rsp = ft_queue_tm_resp,
|
||||||
|
@ -65,7 +65,6 @@ struct target_core_fabric_ops {
|
|||||||
void (*set_default_node_attributes)(struct se_node_acl *);
|
void (*set_default_node_attributes)(struct se_node_acl *);
|
||||||
u32 (*get_task_tag)(struct se_cmd *);
|
u32 (*get_task_tag)(struct se_cmd *);
|
||||||
int (*get_cmd_state)(struct se_cmd *);
|
int (*get_cmd_state)(struct se_cmd *);
|
||||||
void (*new_cmd_failure)(struct se_cmd *);
|
|
||||||
int (*queue_data_in)(struct se_cmd *);
|
int (*queue_data_in)(struct se_cmd *);
|
||||||
int (*queue_status)(struct se_cmd *);
|
int (*queue_status)(struct se_cmd *);
|
||||||
int (*queue_tm_rsp)(struct se_cmd *);
|
int (*queue_tm_rsp)(struct se_cmd *);
|
||||||
|
Loading…
Reference in New Issue
Block a user