Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e182d682 authored by Roland Dreier's avatar Roland Dreier Committed by Nicholas Bellinger
Browse files

tcm_fc: Remove use of transport_do_task_sg_chain()



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: default avatarRoland Dreier <roland@purestorage.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarKiran Patil <Kiran.patil@intel.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent bebe2fdc
Loading
Loading
Loading
Loading
+4 −14
Original line number Diff line number Diff line
@@ -215,20 +215,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;
		}
	}
+0 −3
Original line number Diff line number Diff line
@@ -576,9 +576,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
	 */
+1 −1
Original line number Diff line number Diff line
@@ -228,7 +228,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