Re: [PATCH 14/20] target: Remove the write_pending_status() callback function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Bart Van Assche <bart.vanassche@xxxxxxxxxxx> writes:
> Due to the previous patch the write_pending_status() callback
> function is no longer called. Hence remove it.
>
> Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxx>
> Cc: Hannes Reinecke <hare@xxxxxxx>
> Cc: Andy Grover <agrover@xxxxxxxxxx>
> Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> Cc: Quinn Tran <quinn.tran@xxxxxxxxxx>
> Cc: Saurav Kashyap <saurav.kashyap@xxxxxxxxxx>
> Cc: Felipe Balbi <balbi@xxxxxx>
> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
> Cc: Juergen Gross <jgross@xxxxxxxx>
> ---

Acked-by: Felipe Balbi <balbi@xxxxxx>

>  Documentation/target/tcm_mod_builder.py      |  8 --------
>  drivers/infiniband/ulp/srpt/ib_srpt.c        |  9 ---------
>  drivers/scsi/qla2xxx/tcm_qla2xxx.c           | 22 ----------------------
>  drivers/target/iscsi/iscsi_target_configfs.c | 13 -------------
>  drivers/target/loopback/tcm_loop.c           |  6 ------
>  drivers/target/sbp/sbp_target.c              |  6 ------
>  drivers/target/target_core_configfs.c        |  4 ----
>  drivers/target/target_core_xcopy.c           |  6 ------
>  drivers/target/tcm_fc/tcm_fc.h               |  1 -
>  drivers/target/tcm_fc/tfc_cmd.c              |  7 -------
>  drivers/target/tcm_fc/tfc_conf.c             |  1 -
>  drivers/usb/gadget/legacy/tcm_usb_gadget.c   |  9 ---------
>  drivers/vhost/scsi.c                         |  6 ------
>  drivers/xen/xen-scsiback.c                   |  6 ------
>  include/target/target_core_fabric.h          |  1 -
>  15 files changed, 105 deletions(-)
>
> diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py
> index 7d370c9..71152bb 100755
> --- a/Documentation/target/tcm_mod_builder.py
> +++ b/Documentation/target/tcm_mod_builder.py
> @@ -299,7 +299,6 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
>  	buf += "	.sess_get_index			= " + fabric_mod_name + "_sess_get_index,\n"
>  	buf += "	.sess_get_initiator_sid		= NULL,\n"
>  	buf += "	.write_pending			= " + fabric_mod_name + "_write_pending,\n"
> -	buf += "	.write_pending_status		= " + fabric_mod_name + "_write_pending_status,\n"
>  	buf += "	.set_default_node_attributes	= " + fabric_mod_name + "_set_default_node_attrs,\n"
>  	buf += "	.get_cmd_state			= " + fabric_mod_name + "_get_cmd_state,\n"
>  	buf += "	.queue_data_in			= " + fabric_mod_name + "_queue_data_in,\n"
> @@ -495,13 +494,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
>  			buf += "}\n\n"
>  			bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n"
>  
> -		if re.search('write_pending_status\)\(', fo):
> -			buf += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *se_cmd)\n"
> -			buf += "{\n"
> -			buf += "	return 0;\n"
> -			buf += "}\n\n"
> -			bufi += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *);\n"
> -
>  		if re.search('set_default_node_attributes\)\(', fo):
>  			buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n"
>  			buf += "{\n"
> diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
> index 4d2be30..6e8d3f6 100644
> --- a/drivers/infiniband/ulp/srpt/ib_srpt.c
> +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
> @@ -2932,14 +2932,6 @@ out_unmap:
>  	goto out;
>  }
>  
> -static int srpt_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	struct srpt_send_ioctx *ioctx;
> -
> -	ioctx = container_of(se_cmd, struct srpt_send_ioctx, cmd);
> -	return srpt_get_cmd_state(ioctx) == SRPT_STATE_NEED_DATA;
> -}
> -
>  /*
>   * srpt_write_pending() - Start data transfer from initiator to target (write).
>   */
> @@ -3803,7 +3795,6 @@ static const struct target_core_fabric_ops srpt_template = {
>  	.sess_get_index			= srpt_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= srpt_write_pending,
> -	.write_pending_status		= srpt_write_pending_status,
>  	.set_default_node_attributes	= srpt_set_default_node_attrs,
>  	.get_cmd_state			= srpt_get_tcm_cmd_state,
>  	.queue_data_in			= srpt_queue_data_in,
> diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> index 3ba2e95..59bd75b 100644
> --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> @@ -391,26 +391,6 @@ static int tcm_qla2xxx_write_pending(struct se_cmd *se_cmd)
>  	return qlt_rdy_to_xfer(cmd);
>  }
>  
> -static int tcm_qla2xxx_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	unsigned long flags;
> -	/*
> -	 * Check for WRITE_PENDING status to determine if we need to wait for
> -	 * CTIO aborts to be posted via hardware in tcm_qla2xxx_handle_data().
> -	 */
> -	spin_lock_irqsave(&se_cmd->t_state_lock, flags);
> -	if (se_cmd->t_state == TRANSPORT_WRITE_PENDING ||
> -	    se_cmd->t_state == TRANSPORT_COMPLETE_QF_WP) {
> -		spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
> -		wait_for_completion_timeout(&se_cmd->t_transport_stop_comp,
> -					    3 * HZ);
> -		return 0;
> -	}
> -	spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
> -
> -	return 0;
> -}
> -
>  static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl)
>  {
>  	return;
> @@ -1777,7 +1757,6 @@ static const struct target_core_fabric_ops tcm_qla2xxx_ops = {
>  	.sess_get_index			= tcm_qla2xxx_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= tcm_qla2xxx_write_pending,
> -	.write_pending_status		= tcm_qla2xxx_write_pending_status,
>  	.set_default_node_attributes	= tcm_qla2xxx_set_default_node_attrs,
>  	.get_cmd_state			= tcm_qla2xxx_get_cmd_state,
>  	.queue_data_in			= tcm_qla2xxx_queue_data_in,
> @@ -1820,7 +1799,6 @@ static const struct target_core_fabric_ops tcm_qla2xxx_npiv_ops = {
>  	.sess_get_index			= tcm_qla2xxx_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= tcm_qla2xxx_write_pending,
> -	.write_pending_status		= tcm_qla2xxx_write_pending_status,
>  	.set_default_node_attributes	= tcm_qla2xxx_set_default_node_attrs,
>  	.get_cmd_state			= tcm_qla2xxx_get_cmd_state,
>  	.queue_data_in			= tcm_qla2xxx_queue_data_in,
> diff --git a/drivers/target/iscsi/iscsi_target_configfs.c b/drivers/target/iscsi/iscsi_target_configfs.c
> index 255204c..6a30f82 100644
> --- a/drivers/target/iscsi/iscsi_target_configfs.c
> +++ b/drivers/target/iscsi/iscsi_target_configfs.c
> @@ -1496,18 +1496,6 @@ static int lio_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int lio_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
> -	int ret;
> -
> -	spin_lock_bh(&cmd->istate_lock);
> -	ret = !(cmd->cmd_flags & ICF_GOT_LAST_DATAOUT);
> -	spin_unlock_bh(&cmd->istate_lock);
> -
> -	return ret;
> -}
> -
>  static int lio_queue_status(struct se_cmd *se_cmd)
>  {
>  	struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
> @@ -1685,7 +1673,6 @@ const struct target_core_fabric_ops iscsi_ops = {
>  	.sess_get_index			= lio_sess_get_index,
>  	.sess_get_initiator_sid		= lio_sess_get_initiator_sid,
>  	.write_pending			= lio_write_pending,
> -	.write_pending_status		= lio_write_pending_status,
>  	.set_default_node_attributes	= lio_set_default_node_attributes,
>  	.get_cmd_state			= iscsi_get_cmd_state,
>  	.queue_data_in			= lio_queue_data_in,
> diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
> index 999b6eb..df788f4 100644
> --- a/drivers/target/loopback/tcm_loop.c
> +++ b/drivers/target/loopback/tcm_loop.c
> @@ -627,11 +627,6 @@ static int tcm_loop_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int tcm_loop_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
>  {
>  	struct tcm_loop_cmd *tl_cmd = container_of(se_cmd,
> @@ -1244,7 +1239,6 @@ static const struct target_core_fabric_ops loop_ops = {
>  	.close_session			= tcm_loop_close_session,
>  	.sess_get_index			= tcm_loop_sess_get_index,
>  	.write_pending			= tcm_loop_write_pending,
> -	.write_pending_status		= tcm_loop_write_pending_status,
>  	.set_default_node_attributes	= tcm_loop_set_default_node_attributes,
>  	.get_cmd_state			= tcm_loop_get_cmd_state,
>  	.queue_data_in			= tcm_loop_queue_data_in,
> diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
> index 3072f1a..d1daee0f 100644
> --- a/drivers/target/sbp/sbp_target.c
> +++ b/drivers/target/sbp/sbp_target.c
> @@ -1754,11 +1754,6 @@ static int sbp_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int sbp_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static void sbp_set_default_node_attrs(struct se_node_acl *nacl)
>  {
>  	return;
> @@ -2344,7 +2339,6 @@ static const struct target_core_fabric_ops sbp_ops = {
>  	.close_session			= sbp_close_session,
>  	.sess_get_index			= sbp_sess_get_index,
>  	.write_pending			= sbp_write_pending,
> -	.write_pending_status		= sbp_write_pending_status,
>  	.set_default_node_attributes	= sbp_set_default_node_attrs,
>  	.get_cmd_state			= sbp_get_cmd_state,
>  	.queue_data_in			= sbp_queue_data_in,
> diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
> index b9b9ffd..d03ebd3 100644
> --- a/drivers/target/target_core_configfs.c
> +++ b/drivers/target/target_core_configfs.c
> @@ -349,10 +349,6 @@ static int target_fabric_tf_ops_check(const struct target_core_fabric_ops *tfo)
>  		pr_err("Missing tfo->write_pending()\n");
>  		return -EINVAL;
>  	}
> -	if (!tfo->write_pending_status) {
> -		pr_err("Missing tfo->write_pending_status()\n");
> -		return -EINVAL;
> -	}
>  	if (!tfo->set_default_node_attributes) {
>  		pr_err("Missing tfo->set_default_node_attributes()\n");
>  		return -EINVAL;
> diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c
> index 47fe94e..f658331 100644
> --- a/drivers/target/target_core_xcopy.c
> +++ b/drivers/target/target_core_xcopy.c
> @@ -399,11 +399,6 @@ static int xcopy_pt_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int xcopy_pt_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static int xcopy_pt_queue_data_in(struct se_cmd *se_cmd)
>  {
>  	return 0;
> @@ -420,7 +415,6 @@ static const struct target_core_fabric_ops xcopy_pt_tfo = {
>  	.release_cmd		= xcopy_pt_release_cmd,
>  	.check_stop_free	= xcopy_pt_check_stop_free,
>  	.write_pending		= xcopy_pt_write_pending,
> -	.write_pending_status	= xcopy_pt_write_pending_status,
>  	.queue_data_in		= xcopy_pt_queue_data_in,
>  	.queue_status		= xcopy_pt_queue_status,
>  };
> diff --git a/drivers/target/tcm_fc/tcm_fc.h b/drivers/target/tcm_fc/tcm_fc.h
> index 39909da..25f368d 100644
> --- a/drivers/target/tcm_fc/tcm_fc.h
> +++ b/drivers/target/tcm_fc/tcm_fc.h
> @@ -156,7 +156,6 @@ void ft_release_cmd(struct se_cmd *);
>  int ft_queue_status(struct se_cmd *);
>  int ft_queue_data_in(struct se_cmd *);
>  int ft_write_pending(struct se_cmd *);
> -int ft_write_pending_status(struct se_cmd *);
>  int ft_get_cmd_state(struct se_cmd *);
>  void ft_queue_tm_resp(struct se_cmd *);
>  void ft_aborted_task(struct se_cmd *);
> diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
> index 064d6df..91aca99 100644
> --- a/drivers/target/tcm_fc/tfc_cmd.c
> +++ b/drivers/target/tcm_fc/tfc_cmd.c
> @@ -182,13 +182,6 @@ int ft_queue_status(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -int ft_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd);
> -
> -	return cmd->write_data_len != se_cmd->data_length;
> -}
> -
>  /*
>   * Send TX_RDY (transfer ready).
>   */
> diff --git a/drivers/target/tcm_fc/tfc_conf.c b/drivers/target/tcm_fc/tfc_conf.c
> index 85aeaa0..a879137 100644
> --- a/drivers/target/tcm_fc/tfc_conf.c
> +++ b/drivers/target/tcm_fc/tfc_conf.c
> @@ -450,7 +450,6 @@ static const struct target_core_fabric_ops ft_fabric_ops = {
>  	.sess_get_index =		ft_sess_get_index,
>  	.sess_get_initiator_sid =	NULL,
>  	.write_pending =		ft_write_pending,
> -	.write_pending_status =		ft_write_pending_status,
>  	.set_default_node_attributes =	ft_set_default_node_attr,
>  	.get_cmd_state =		ft_get_cmd_state,
>  	.queue_data_in =		ft_queue_data_in,
> diff --git a/drivers/usb/gadget/legacy/tcm_usb_gadget.c b/drivers/usb/gadget/legacy/tcm_usb_gadget.c
> index ddef0c5..ef4195a 100644
> --- a/drivers/usb/gadget/legacy/tcm_usb_gadget.c
> +++ b/drivers/usb/gadget/legacy/tcm_usb_gadget.c
> @@ -1310,14 +1310,6 @@ static u32 usbg_sess_get_index(struct se_session *se_sess)
>  	return 0;
>  }
>  
> -/*
> - * XXX Error recovery: return != 0 if we expect writes. Dunno when that could be
> - */
> -static int usbg_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static void usbg_set_default_node_attrs(struct se_node_acl *nacl)
>  {
>  	return;
> @@ -1703,7 +1695,6 @@ static const struct target_core_fabric_ops usbg_ops = {
>  	.sess_get_index			= usbg_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= usbg_send_write_request,
> -	.write_pending_status		= usbg_write_pending_status,
>  	.set_default_node_attributes	= usbg_set_default_node_attrs,
>  	.get_cmd_state			= usbg_get_cmd_state,
>  	.queue_data_in			= usbg_send_read_response,
> diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
> index a971765..818c288 100644
> --- a/drivers/vhost/scsi.c
> +++ b/drivers/vhost/scsi.c
> @@ -357,11 +357,6 @@ static int vhost_scsi_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int vhost_scsi_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static void vhost_scsi_set_default_node_attrs(struct se_node_acl *nacl)
>  {
>  	return;
> @@ -2138,7 +2133,6 @@ static struct target_core_fabric_ops vhost_scsi_ops = {
>  	.sess_get_index			= vhost_scsi_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= vhost_scsi_write_pending,
> -	.write_pending_status		= vhost_scsi_write_pending_status,
>  	.set_default_node_attributes	= vhost_scsi_set_default_node_attrs,
>  	.get_cmd_state			= vhost_scsi_get_cmd_state,
>  	.queue_data_in			= vhost_scsi_queue_data_in,
> diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
> index 43bcae8..28f623f 100644
> --- a/drivers/xen/xen-scsiback.c
> +++ b/drivers/xen/xen-scsiback.c
> @@ -1383,11 +1383,6 @@ static int scsiback_write_pending(struct se_cmd *se_cmd)
>  	return 0;
>  }
>  
> -static int scsiback_write_pending_status(struct se_cmd *se_cmd)
> -{
> -	return 0;
> -}
> -
>  static void scsiback_set_default_node_attrs(struct se_node_acl *nacl)
>  {
>  }
> @@ -1820,7 +1815,6 @@ static const struct target_core_fabric_ops scsiback_ops = {
>  	.sess_get_index			= scsiback_sess_get_index,
>  	.sess_get_initiator_sid		= NULL,
>  	.write_pending			= scsiback_write_pending,
> -	.write_pending_status		= scsiback_write_pending_status,
>  	.set_default_node_attributes	= scsiback_set_default_node_attrs,
>  	.get_cmd_state			= scsiback_get_cmd_state,
>  	.queue_data_in			= scsiback_queue_data_in,
> diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h
> index 98a362d..fbe45d55 100644
> --- a/include/target/target_core_fabric.h
> +++ b/include/target/target_core_fabric.h
> @@ -63,7 +63,6 @@ struct target_core_fabric_ops {
>  	u32 (*sess_get_initiator_sid)(struct se_session *,
>  				      unsigned char *, u32);
>  	int (*write_pending)(struct se_cmd *);
> -	int (*write_pending_status)(struct se_cmd *);
>  	void (*set_default_node_attributes)(struct se_node_acl *);
>  	int (*get_cmd_state)(struct se_cmd *);
>  	int (*queue_data_in)(struct se_cmd *);
> -- 
> 2.1.4
>

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux