Re: [PATCH 1/5] tcm_fc: Remove use of transport_do_task_sg_chain()

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

 



On Fri, 2012-03-30 at 11:29 -0700, Roland Dreier wrote:
> From: Roland Dreier <roland@xxxxxxxxxxxxxxx>
> 
> With the modern target core, se_cmd->t_data_sg already points to a
> sglist that covers the whole command.  So task_sg chaining is needless
> overhead and obfuscation -- instead of splicing the split up task
> sglists back into one list, we can just use the original list directly.
> 
> Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx>

Hi Roland,

Looks fine for the DDP offload case.  Applied w/ Kiran's ACK.

Thanks folks!

--nab

> ---
>  drivers/target/tcm_fc/tfc_cmd.c  |   18 ++++--------------
>  drivers/target/tcm_fc/tfc_conf.c |    3 ---
>  drivers/target/tcm_fc/tfc_io.c   |    2 +-
>  3 files changed, 5 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
> index dc772f9..1d6076d 100644
> --- a/drivers/target/tcm_fc/tfc_cmd.c
> +++ b/drivers/target/tcm_fc/tfc_cmd.c
> @@ -211,20 +211,10 @@ int ft_write_pending(struct se_cmd *se_cmd)
>  		 */
>  		if ((ep->xid <= lport->lro_xid) &&
>  		    (fh->fh_r_ctl == FC_RCTL_DD_DATA_DESC)) {
> -			if (se_cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB) {
> -				/*
> -				 * cmd may have been broken up into multiple
> -				 * tasks. Link their sgs together so we can
> -				 * operate on them all at once.
> -				 */
> -				transport_do_task_sg_chain(se_cmd);
> -				cmd->sg = se_cmd->t_tasks_sg_chained;
> -				cmd->sg_cnt =
> -					se_cmd->t_tasks_sg_chained_no;
> -			}
> -			if (cmd->sg && lport->tt.ddp_target(lport, ep->xid,
> -							    cmd->sg,
> -							    cmd->sg_cnt))
> +			if ((se_cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB) &&
> +			    lport->tt.ddp_target(lport, ep->xid,
> +						 se_cmd->t_data_sg,
> +						 se_cmd->t_data_nents))
>  				cmd->was_ddp_setup = 1;
>  		}
>  	}
> diff --git a/drivers/target/tcm_fc/tfc_conf.c b/drivers/target/tcm_fc/tfc_conf.c
> index 202755c..2e3eb2c 100644
> --- a/drivers/target/tcm_fc/tfc_conf.c
> +++ b/drivers/target/tcm_fc/tfc_conf.c
> @@ -572,9 +572,6 @@ int ft_register_configfs(void)
>  	}
>  	fabric->tf_ops = ft_fabric_ops;
>  
> -	/* Allowing support for task_sg_chaining */
> -	fabric->tf_ops.task_sg_chaining = 1;
> -
>  	/*
>  	 * Setup default attribute lists for various fabric->tf_cit_tmpl
>  	 */
> diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c
> index d8cabc2..b307808 100644
> --- a/drivers/target/tcm_fc/tfc_io.c
> +++ b/drivers/target/tcm_fc/tfc_io.c
> @@ -227,7 +227,7 @@ void ft_recv_write_data(struct ft_cmd *cmd, struct fc_frame *fp)
>  				"payload, Frame will be dropped if"
>  				"'Sequence Initiative' bit in f_ctl is"
>  				"not set\n", __func__, ep->xid, f_ctl,
> -				cmd->sg, cmd->sg_cnt);
> +				se_cmd->t_data_sg, se_cmd->t_data_nents);
>  		/*
>  		 * Invalidate HW DDP context if it was setup for respective
>  		 * command. Invalidation of HW DDP context is requited in both


--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux