From 9c58b7ddd70dd7bfaac4ca87131f36d10aaba441 Mon Sep 17 00:00:00 2001 From: Roland Dreier Date: Wed, 15 Aug 2012 14:35:25 -0700 Subject: [PATCH] target: Simplify fabric sense data length handling Every fabric driver has to supply a se_tfo->set_fabric_sense_len() method, just so iSCSI can return an offset of 2. However, every fabric driver is already allocating a sense buffer and passing it into the target core, either via transport_init_se_cmd() or target_submit_cmd(). So instead of having iSCSI pass the start of its sense buffer into the core and then later tell the core to skip the first 2 bytes, it seems easier for iSCSI just to do the offset of 2 when it passes the sense buffer into the core. Then we can drop the se_tfo->set_fabric_sense_len() everywhere, and just add a couple of lines of code to iSCSI to set the sense data length to the beginning of the buffer right before it sends it over the network. (nab: Remove .set_fabric_sense_len usage from tcm_qla2xxx_npiv_ops + change transport_get_sense_buffer to follow v3.6-rc6 code w/o ->set_fabric_sense_len usage) Signed-off-by: Roland Dreier Signed-off-by: Nicholas Bellinger --- [[ stefanr: only firewire part included here ]] Documentation/target/tcm_mod_builder.py | 8 -- drivers/infiniband/ulp/srpt/ib_srpt.c | 6 -- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 8 -- drivers/target/iscsi/iscsi_target.c | 13 ++- drivers/target/iscsi/iscsi_target_configfs.c | 16 --- 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_transport.c | 155 ++++++++++++--------------- drivers/target/tcm_fc/tfc_conf.c | 6 -- drivers/usb/gadget/tcm_usb_gadget.c | 6 -- drivers/vhost/tcm_vhost.c | 7 -- include/target/target_core_fabric.h | 1 - 13 files changed, 79 insertions(+), 163 deletions(-) diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c index cb40a40..4d97977 100644 --- a/drivers/target/sbp/sbp_target.c +++ b/drivers/target/sbp/sbp_target.c @@ -1847,11 +1847,6 @@ static int sbp_queue_tm_rsp(struct se_cmd *se_cmd) return 0; } -static u16 sbp_set_fabric_sense_len(struct se_cmd *se_cmd, u32 sense_length) -{ - return 0; -} - static int sbp_check_stop_free(struct se_cmd *se_cmd) { struct sbp_target_request *req = container_of(se_cmd, @@ -2529,7 +2524,6 @@ static struct target_core_fabric_ops sbp_ops = { .queue_data_in = sbp_queue_data_in, .queue_status = sbp_queue_status, .queue_tm_rsp = sbp_queue_tm_rsp, - .set_fabric_sense_len = sbp_set_fabric_sense_len, .check_stop_free = sbp_check_stop_free, .fabric_make_wwn = sbp_make_tport,