summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2019-01-25 13:34:43 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2019-02-04 21:23:59 -0500
commitf80d2f0846b7b9ceb1f2a5951229ee4391edaebd (patch)
treed5859aaf2cb254dcdfcd389bf203102c271a3717
parente18e9dac9cdc9f4d048115cd4b9b0ff40c190555 (diff)
scsi: target/core: Remove the write_pending_status() callback function
Due to the patch that makes TMF handling synchronous the write_pending_status() callback function is no longer called. Hence remove it. Acked-by: Felipe Balbi <balbi@ti.com> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Reviewed-by: Andy Grover <agrover@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com> Cc: Nicholas Bellinger <nab@linux-iscsi.org> Cc: Mike Christie <mchristi@redhat.com> Cc: Himanshu Madhani <himanshu.madhani@qlogic.com> Cc: Quinn Tran <quinn.tran@qlogic.com> Cc: Saurav Kashyap <saurav.kashyap@qlogic.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Juergen Gross <jgross@suse.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rwxr-xr-xDocumentation/target/tcm_mod_builder.py8
-rw-r--r--drivers/infiniband/ulp/srpt/ib_srpt.c9
-rw-r--r--drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c6
-rw-r--r--drivers/scsi/qla2xxx/tcm_qla2xxx.c31
-rw-r--r--drivers/target/iscsi/iscsi_target_configfs.c13
-rw-r--r--drivers/target/loopback/tcm_loop.c6
-rw-r--r--drivers/target/sbp/sbp_target.c6
-rw-r--r--drivers/target/target_core_configfs.c4
-rw-r--r--drivers/target/target_core_xcopy.c6
-rw-r--r--drivers/target/tcm_fc/tcm_fc.h1
-rw-r--r--drivers/target/tcm_fc/tfc_cmd.c7
-rw-r--r--drivers/target/tcm_fc/tfc_conf.c1
-rw-r--r--drivers/usb/gadget/function/f_tcm.c9
-rw-r--r--drivers/vhost/scsi.c6
-rw-r--r--drivers/xen/xen-scsiback.c6
-rw-r--r--include/target/target_core_fabric.h1
16 files changed, 0 insertions, 120 deletions
diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py
index 94bf6944bb1e..95d6e31f1e3a 100755
--- a/Documentation/target/tcm_mod_builder.py
+++ b/Documentation/target/tcm_mod_builder.py
@@ -297,7 +297,6 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
297 buf += " .sess_get_index = " + fabric_mod_name + "_sess_get_index,\n" 297 buf += " .sess_get_index = " + fabric_mod_name + "_sess_get_index,\n"
298 buf += " .sess_get_initiator_sid = NULL,\n" 298 buf += " .sess_get_initiator_sid = NULL,\n"
299 buf += " .write_pending = " + fabric_mod_name + "_write_pending,\n" 299 buf += " .write_pending = " + fabric_mod_name + "_write_pending,\n"
300 buf += " .write_pending_status = " + fabric_mod_name + "_write_pending_status,\n"
301 buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n" 300 buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n"
302 buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n" 301 buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n"
303 buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n" 302 buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n"
@@ -479,13 +478,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
479 buf += "}\n\n" 478 buf += "}\n\n"
480 bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n" 479 bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n"
481 480
482 if re.search('write_pending_status\)\(', fo):
483 buf += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *se_cmd)\n"
484 buf += "{\n"
485 buf += " return 0;\n"
486 buf += "}\n\n"
487 bufi += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *);\n"
488
489 if re.search('set_default_node_attributes\)\(', fo): 481 if re.search('set_default_node_attributes\)\(', fo):
490 buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n" 482 buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n"
491 buf += "{\n" 483 buf += "{\n"
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
index e9c336cff8f5..8cee8c6c6be9 100644
--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -2703,14 +2703,6 @@ static int srpt_rdma_cm_handler(struct rdma_cm_id *cm_id,
2703 return ret; 2703 return ret;
2704} 2704}
2705 2705
2706static int srpt_write_pending_status(struct se_cmd *se_cmd)
2707{
2708 struct srpt_send_ioctx *ioctx;
2709
2710 ioctx = container_of(se_cmd, struct srpt_send_ioctx, cmd);
2711 return ioctx->state == SRPT_STATE_NEED_DATA;
2712}
2713
2714/* 2706/*
2715 * srpt_write_pending - Start data transfer from initiator to target (write). 2707 * srpt_write_pending - Start data transfer from initiator to target (write).
2716 */ 2708 */
@@ -3806,7 +3798,6 @@ static const struct target_core_fabric_ops srpt_template = {
3806 .sess_get_index = srpt_sess_get_index, 3798 .sess_get_index = srpt_sess_get_index,
3807 .sess_get_initiator_sid = NULL, 3799 .sess_get_initiator_sid = NULL,
3808 .write_pending = srpt_write_pending, 3800 .write_pending = srpt_write_pending,
3809 .write_pending_status = srpt_write_pending_status,
3810 .set_default_node_attributes = srpt_set_default_node_attrs, 3801 .set_default_node_attributes = srpt_set_default_node_attrs,
3811 .get_cmd_state = srpt_get_tcm_cmd_state, 3802 .get_cmd_state = srpt_get_tcm_cmd_state,
3812 .queue_data_in = srpt_queue_data_in, 3803 .queue_data_in = srpt_queue_data_in,
diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
index cc9cae469c4b..7ca277e28d63 100644
--- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
+++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
@@ -3788,11 +3788,6 @@ static int ibmvscsis_write_pending(struct se_cmd *se_cmd)
3788 return 0; 3788 return 0;
3789} 3789}
3790 3790
3791static int ibmvscsis_write_pending_status(struct se_cmd *se_cmd)
3792{
3793 return 0;
3794}
3795
3796static void ibmvscsis_set_default_node_attrs(struct se_node_acl *nacl) 3791static void ibmvscsis_set_default_node_attrs(struct se_node_acl *nacl)
3797{ 3792{
3798} 3793}
@@ -4053,7 +4048,6 @@ static const struct target_core_fabric_ops ibmvscsis_ops = {
4053 .release_cmd = ibmvscsis_release_cmd, 4048 .release_cmd = ibmvscsis_release_cmd,
4054 .sess_get_index = ibmvscsis_sess_get_index, 4049 .sess_get_index = ibmvscsis_sess_get_index,
4055 .write_pending = ibmvscsis_write_pending, 4050 .write_pending = ibmvscsis_write_pending,
4056 .write_pending_status = ibmvscsis_write_pending_status,
4057 .set_default_node_attributes = ibmvscsis_set_default_node_attrs, 4051 .set_default_node_attributes = ibmvscsis_set_default_node_attrs,
4058 .get_cmd_state = ibmvscsis_get_cmd_state, 4052 .get_cmd_state = ibmvscsis_get_cmd_state,
4059 .queue_data_in = ibmvscsis_queue_data_in, 4053 .queue_data_in = ibmvscsis_queue_data_in,
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
index 283e6b80abb5..8a3075d17c63 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -420,26 +420,6 @@ static int tcm_qla2xxx_write_pending(struct se_cmd *se_cmd)
420 return qlt_rdy_to_xfer(cmd); 420 return qlt_rdy_to_xfer(cmd);
421} 421}
422 422
423static int tcm_qla2xxx_write_pending_status(struct se_cmd *se_cmd)
424{
425 unsigned long flags;
426 /*
427 * Check for WRITE_PENDING status to determine if we need to wait for
428 * CTIO aborts to be posted via hardware in tcm_qla2xxx_handle_data().
429 */
430 spin_lock_irqsave(&se_cmd->t_state_lock, flags);
431 if (se_cmd->t_state == TRANSPORT_WRITE_PENDING ||
432 se_cmd->t_state == TRANSPORT_COMPLETE_QF_WP) {
433 spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
434 wait_for_completion_timeout(&se_cmd->t_transport_stop_comp,
435 50);
436 return 0;
437 }
438 spin_unlock_irqrestore(&se_cmd->t_state_lock, flags);
439
440 return 0;
441}
442
443static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl) 423static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl)
444{ 424{
445 return; 425 return;
@@ -537,15 +517,6 @@ static void tcm_qla2xxx_handle_data_work(struct work_struct *work)
537 517
538 cmd->qpair->tgt_counters.qla_core_ret_ctio++; 518 cmd->qpair->tgt_counters.qla_core_ret_ctio++;
539 if (!cmd->write_data_transferred) { 519 if (!cmd->write_data_transferred) {
540 /*
541 * Check if se_cmd has already been aborted via LUN_RESET, and
542 * waiting upon completion in tcm_qla2xxx_write_pending_status()
543 */
544 if (cmd->se_cmd.transport_state & CMD_T_ABORTED) {
545 complete(&cmd->se_cmd.t_transport_stop_comp);
546 return;
547 }
548
549 switch (cmd->dif_err_code) { 520 switch (cmd->dif_err_code) {
550 case DIF_ERR_GRD: 521 case DIF_ERR_GRD:
551 cmd->se_cmd.pi_err = 522 cmd->se_cmd.pi_err =
@@ -1902,7 +1873,6 @@ static const struct target_core_fabric_ops tcm_qla2xxx_ops = {
1902 .sess_get_index = tcm_qla2xxx_sess_get_index, 1873 .sess_get_index = tcm_qla2xxx_sess_get_index,
1903 .sess_get_initiator_sid = NULL, 1874 .sess_get_initiator_sid = NULL,
1904 .write_pending = tcm_qla2xxx_write_pending, 1875 .write_pending = tcm_qla2xxx_write_pending,
1905 .write_pending_status = tcm_qla2xxx_write_pending_status,
1906 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs, 1876 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs,
1907 .get_cmd_state = tcm_qla2xxx_get_cmd_state, 1877 .get_cmd_state = tcm_qla2xxx_get_cmd_state,
1908 .queue_data_in = tcm_qla2xxx_queue_data_in, 1878 .queue_data_in = tcm_qla2xxx_queue_data_in,
@@ -1943,7 +1913,6 @@ static const struct target_core_fabric_ops tcm_qla2xxx_npiv_ops = {
1943 .sess_get_index = tcm_qla2xxx_sess_get_index, 1913 .sess_get_index = tcm_qla2xxx_sess_get_index,
1944 .sess_get_initiator_sid = NULL, 1914 .sess_get_initiator_sid = NULL,
1945 .write_pending = tcm_qla2xxx_write_pending, 1915 .write_pending = tcm_qla2xxx_write_pending,
1946 .write_pending_status = tcm_qla2xxx_write_pending_status,
1947 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs, 1916 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs,
1948 .get_cmd_state = tcm_qla2xxx_get_cmd_state, 1917 .get_cmd_state = tcm_qla2xxx_get_cmd_state,
1949 .queue_data_in = tcm_qla2xxx_queue_data_in, 1918 .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 a5481dfeae8d..cac94c94ef5d 100644
--- a/drivers/target/iscsi/iscsi_target_configfs.c
+++ b/drivers/target/iscsi/iscsi_target_configfs.c
@@ -1389,18 +1389,6 @@ static int lio_write_pending(struct se_cmd *se_cmd)
1389 return 0; 1389 return 0;
1390} 1390}
1391 1391
1392static int lio_write_pending_status(struct se_cmd *se_cmd)
1393{
1394 struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
1395 int ret;
1396
1397 spin_lock_bh(&cmd->istate_lock);
1398 ret = !(cmd->cmd_flags & ICF_GOT_LAST_DATAOUT);
1399 spin_unlock_bh(&cmd->istate_lock);
1400
1401 return ret;
1402}
1403
1404static int lio_queue_status(struct se_cmd *se_cmd) 1392static int lio_queue_status(struct se_cmd *se_cmd)
1405{ 1393{
1406 struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd); 1394 struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
@@ -1564,7 +1552,6 @@ const struct target_core_fabric_ops iscsi_ops = {
1564 .sess_get_index = lio_sess_get_index, 1552 .sess_get_index = lio_sess_get_index,
1565 .sess_get_initiator_sid = lio_sess_get_initiator_sid, 1553 .sess_get_initiator_sid = lio_sess_get_initiator_sid,
1566 .write_pending = lio_write_pending, 1554 .write_pending = lio_write_pending,
1567 .write_pending_status = lio_write_pending_status,
1568 .set_default_node_attributes = lio_set_default_node_attributes, 1555 .set_default_node_attributes = lio_set_default_node_attributes,
1569 .get_cmd_state = iscsi_get_cmd_state, 1556 .get_cmd_state = iscsi_get_cmd_state,
1570 .queue_data_in = lio_queue_data_in, 1557 .queue_data_in = lio_queue_data_in,
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
index 7bd7c0c0db6f..89c6e3719d2b 100644
--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -560,11 +560,6 @@ static int tcm_loop_write_pending(struct se_cmd *se_cmd)
560 return 0; 560 return 0;
561} 561}
562 562
563static int tcm_loop_write_pending_status(struct se_cmd *se_cmd)
564{
565 return 0;
566}
567
568static int tcm_loop_queue_data_in(struct se_cmd *se_cmd) 563static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
569{ 564{
570 struct tcm_loop_cmd *tl_cmd = container_of(se_cmd, 565 struct tcm_loop_cmd *tl_cmd = container_of(se_cmd,
@@ -1159,7 +1154,6 @@ static const struct target_core_fabric_ops loop_ops = {
1159 .release_cmd = tcm_loop_release_cmd, 1154 .release_cmd = tcm_loop_release_cmd,
1160 .sess_get_index = tcm_loop_sess_get_index, 1155 .sess_get_index = tcm_loop_sess_get_index,
1161 .write_pending = tcm_loop_write_pending, 1156 .write_pending = tcm_loop_write_pending,
1162 .write_pending_status = tcm_loop_write_pending_status,
1163 .set_default_node_attributes = tcm_loop_set_default_node_attributes, 1157 .set_default_node_attributes = tcm_loop_set_default_node_attributes,
1164 .get_cmd_state = tcm_loop_get_cmd_state, 1158 .get_cmd_state = tcm_loop_get_cmd_state,
1165 .queue_data_in = tcm_loop_queue_data_in, 1159 .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 08cee13dfb9a..b0d3583998f0 100644
--- a/drivers/target/sbp/sbp_target.c
+++ b/drivers/target/sbp/sbp_target.c
@@ -1749,11 +1749,6 @@ static int sbp_write_pending(struct se_cmd *se_cmd)
1749 return 0; 1749 return 0;
1750} 1750}
1751 1751
1752static int sbp_write_pending_status(struct se_cmd *se_cmd)
1753{
1754 return 0;
1755}
1756
1757static void sbp_set_default_node_attrs(struct se_node_acl *nacl) 1752static void sbp_set_default_node_attrs(struct se_node_acl *nacl)
1758{ 1753{
1759 return; 1754 return;
@@ -2329,7 +2324,6 @@ static const struct target_core_fabric_ops sbp_ops = {
2329 .release_cmd = sbp_release_cmd, 2324 .release_cmd = sbp_release_cmd,
2330 .sess_get_index = sbp_sess_get_index, 2325 .sess_get_index = sbp_sess_get_index,
2331 .write_pending = sbp_write_pending, 2326 .write_pending = sbp_write_pending,
2332 .write_pending_status = sbp_write_pending_status,
2333 .set_default_node_attributes = sbp_set_default_node_attrs, 2327 .set_default_node_attributes = sbp_set_default_node_attrs,
2334 .get_cmd_state = sbp_get_cmd_state, 2328 .get_cmd_state = sbp_get_cmd_state,
2335 .queue_data_in = sbp_queue_data_in, 2329 .queue_data_in = sbp_queue_data_in,
diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
index 72016d0dfca5..1124c84a3b7f 100644
--- a/drivers/target/target_core_configfs.c
+++ b/drivers/target/target_core_configfs.c
@@ -401,10 +401,6 @@ static int target_fabric_tf_ops_check(const struct target_core_fabric_ops *tfo)
401 pr_err("Missing tfo->write_pending()\n"); 401 pr_err("Missing tfo->write_pending()\n");
402 return -EINVAL; 402 return -EINVAL;
403 } 403 }
404 if (!tfo->write_pending_status) {
405 pr_err("Missing tfo->write_pending_status()\n");
406 return -EINVAL;
407 }
408 if (!tfo->set_default_node_attributes) { 404 if (!tfo->set_default_node_attributes) {
409 pr_err("Missing tfo->set_default_node_attributes()\n"); 405 pr_err("Missing tfo->set_default_node_attributes()\n");
410 return -EINVAL; 406 return -EINVAL;
diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c
index c2e1fc927fdf..9be1418e919f 100644
--- a/drivers/target/target_core_xcopy.c
+++ b/drivers/target/target_core_xcopy.c
@@ -442,11 +442,6 @@ static int xcopy_pt_write_pending(struct se_cmd *se_cmd)
442 return 0; 442 return 0;
443} 443}
444 444
445static int xcopy_pt_write_pending_status(struct se_cmd *se_cmd)
446{
447 return 0;
448}
449
450static int xcopy_pt_queue_data_in(struct se_cmd *se_cmd) 445static int xcopy_pt_queue_data_in(struct se_cmd *se_cmd)
451{ 446{
452 return 0; 447 return 0;
@@ -463,7 +458,6 @@ static const struct target_core_fabric_ops xcopy_pt_tfo = {
463 .release_cmd = xcopy_pt_release_cmd, 458 .release_cmd = xcopy_pt_release_cmd,
464 .check_stop_free = xcopy_pt_check_stop_free, 459 .check_stop_free = xcopy_pt_check_stop_free,
465 .write_pending = xcopy_pt_write_pending, 460 .write_pending = xcopy_pt_write_pending,
466 .write_pending_status = xcopy_pt_write_pending_status,
467 .queue_data_in = xcopy_pt_queue_data_in, 461 .queue_data_in = xcopy_pt_queue_data_in,
468 .queue_status = xcopy_pt_queue_status, 462 .queue_status = xcopy_pt_queue_status,
469}; 463};
diff --git a/drivers/target/tcm_fc/tcm_fc.h b/drivers/target/tcm_fc/tcm_fc.h
index 11d27b93b413..b8ced4458118 100644
--- a/drivers/target/tcm_fc/tcm_fc.h
+++ b/drivers/target/tcm_fc/tcm_fc.h
@@ -158,7 +158,6 @@ void ft_release_cmd(struct se_cmd *);
158int ft_queue_status(struct se_cmd *); 158int ft_queue_status(struct se_cmd *);
159int ft_queue_data_in(struct se_cmd *); 159int ft_queue_data_in(struct se_cmd *);
160int ft_write_pending(struct se_cmd *); 160int ft_write_pending(struct se_cmd *);
161int ft_write_pending_status(struct se_cmd *);
162int ft_get_cmd_state(struct se_cmd *); 161int ft_get_cmd_state(struct se_cmd *);
163void ft_queue_tm_resp(struct se_cmd *); 162void ft_queue_tm_resp(struct se_cmd *);
164void ft_aborted_task(struct se_cmd *); 163void 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 a183d4da7db2..f0529ba58f4c 100644
--- a/drivers/target/tcm_fc/tfc_cmd.c
+++ b/drivers/target/tcm_fc/tfc_cmd.c
@@ -184,13 +184,6 @@ int ft_queue_status(struct se_cmd *se_cmd)
184 return 0; 184 return 0;
185} 185}
186 186
187int ft_write_pending_status(struct se_cmd *se_cmd)
188{
189 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd);
190
191 return cmd->write_data_len != se_cmd->data_length;
192}
193
194/* 187/*
195 * Send TX_RDY (transfer ready). 188 * Send TX_RDY (transfer ready).
196 */ 189 */
diff --git a/drivers/target/tcm_fc/tfc_conf.c b/drivers/target/tcm_fc/tfc_conf.c
index 1ce49518d440..c873a052fcb0 100644
--- a/drivers/target/tcm_fc/tfc_conf.c
+++ b/drivers/target/tcm_fc/tfc_conf.c
@@ -437,7 +437,6 @@ static const struct target_core_fabric_ops ft_fabric_ops = {
437 .sess_get_index = ft_sess_get_index, 437 .sess_get_index = ft_sess_get_index,
438 .sess_get_initiator_sid = NULL, 438 .sess_get_initiator_sid = NULL,
439 .write_pending = ft_write_pending, 439 .write_pending = ft_write_pending,
440 .write_pending_status = ft_write_pending_status,
441 .set_default_node_attributes = ft_set_default_node_attr, 440 .set_default_node_attributes = ft_set_default_node_attr,
442 .get_cmd_state = ft_get_cmd_state, 441 .get_cmd_state = ft_get_cmd_state,
443 .queue_data_in = ft_queue_data_in, 442 .queue_data_in = ft_queue_data_in,
diff --git a/drivers/usb/gadget/function/f_tcm.c b/drivers/usb/gadget/function/f_tcm.c
index 34f5982cab78..7f01f78b1d23 100644
--- a/drivers/usb/gadget/function/f_tcm.c
+++ b/drivers/usb/gadget/function/f_tcm.c
@@ -1292,14 +1292,6 @@ static u32 usbg_sess_get_index(struct se_session *se_sess)
1292 return 0; 1292 return 0;
1293} 1293}
1294 1294
1295/*
1296 * XXX Error recovery: return != 0 if we expect writes. Dunno when that could be
1297 */
1298static int usbg_write_pending_status(struct se_cmd *se_cmd)
1299{
1300 return 0;
1301}
1302
1303static void usbg_set_default_node_attrs(struct se_node_acl *nacl) 1295static void usbg_set_default_node_attrs(struct se_node_acl *nacl)
1304{ 1296{
1305} 1297}
@@ -1725,7 +1717,6 @@ static const struct target_core_fabric_ops usbg_ops = {
1725 .sess_get_index = usbg_sess_get_index, 1717 .sess_get_index = usbg_sess_get_index,
1726 .sess_get_initiator_sid = NULL, 1718 .sess_get_initiator_sid = NULL,
1727 .write_pending = usbg_send_write_request, 1719 .write_pending = usbg_send_write_request,
1728 .write_pending_status = usbg_write_pending_status,
1729 .set_default_node_attributes = usbg_set_default_node_attrs, 1720 .set_default_node_attributes = usbg_set_default_node_attrs,
1730 .get_cmd_state = usbg_get_cmd_state, 1721 .get_cmd_state = usbg_get_cmd_state,
1731 .queue_data_in = usbg_send_read_response, 1722 .queue_data_in = usbg_send_read_response,
diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
index 8e10ab436d1f..ad7899f99b97 100644
--- a/drivers/vhost/scsi.c
+++ b/drivers/vhost/scsi.c
@@ -346,11 +346,6 @@ static int vhost_scsi_write_pending(struct se_cmd *se_cmd)
346 return 0; 346 return 0;
347} 347}
348 348
349static int vhost_scsi_write_pending_status(struct se_cmd *se_cmd)
350{
351 return 0;
352}
353
354static void vhost_scsi_set_default_node_attrs(struct se_node_acl *nacl) 349static void vhost_scsi_set_default_node_attrs(struct se_node_acl *nacl)
355{ 350{
356 return; 351 return;
@@ -2298,7 +2293,6 @@ static const struct target_core_fabric_ops vhost_scsi_ops = {
2298 .sess_get_index = vhost_scsi_sess_get_index, 2293 .sess_get_index = vhost_scsi_sess_get_index,
2299 .sess_get_initiator_sid = NULL, 2294 .sess_get_initiator_sid = NULL,
2300 .write_pending = vhost_scsi_write_pending, 2295 .write_pending = vhost_scsi_write_pending,
2301 .write_pending_status = vhost_scsi_write_pending_status,
2302 .set_default_node_attributes = vhost_scsi_set_default_node_attrs, 2296 .set_default_node_attributes = vhost_scsi_set_default_node_attrs,
2303 .get_cmd_state = vhost_scsi_get_cmd_state, 2297 .get_cmd_state = vhost_scsi_get_cmd_state,
2304 .queue_data_in = vhost_scsi_queue_data_in, 2298 .queue_data_in = vhost_scsi_queue_data_in,
diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
index c9e23a126218..e59937293a32 100644
--- a/drivers/xen/xen-scsiback.c
+++ b/drivers/xen/xen-scsiback.c
@@ -1404,11 +1404,6 @@ static int scsiback_write_pending(struct se_cmd *se_cmd)
1404 return 0; 1404 return 0;
1405} 1405}
1406 1406
1407static int scsiback_write_pending_status(struct se_cmd *se_cmd)
1408{
1409 return 0;
1410}
1411
1412static void scsiback_set_default_node_attrs(struct se_node_acl *nacl) 1407static void scsiback_set_default_node_attrs(struct se_node_acl *nacl)
1413{ 1408{
1414} 1409}
@@ -1818,7 +1813,6 @@ static const struct target_core_fabric_ops scsiback_ops = {
1818 .sess_get_index = scsiback_sess_get_index, 1813 .sess_get_index = scsiback_sess_get_index,
1819 .sess_get_initiator_sid = NULL, 1814 .sess_get_initiator_sid = NULL,
1820 .write_pending = scsiback_write_pending, 1815 .write_pending = scsiback_write_pending,
1821 .write_pending_status = scsiback_write_pending_status,
1822 .set_default_node_attributes = scsiback_set_default_node_attrs, 1816 .set_default_node_attributes = scsiback_set_default_node_attrs,
1823 .get_cmd_state = scsiback_get_cmd_state, 1817 .get_cmd_state = scsiback_get_cmd_state,
1824 .queue_data_in = scsiback_queue_data_in, 1818 .queue_data_in = scsiback_queue_data_in,
diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h
index ee5ddd81cd8d..691c6b5e6520 100644
--- a/include/target/target_core_fabric.h
+++ b/include/target/target_core_fabric.h
@@ -74,7 +74,6 @@ struct target_core_fabric_ops {
74 u32 (*sess_get_initiator_sid)(struct se_session *, 74 u32 (*sess_get_initiator_sid)(struct se_session *,
75 unsigned char *, u32); 75 unsigned char *, u32);
76 int (*write_pending)(struct se_cmd *); 76 int (*write_pending)(struct se_cmd *);
77 int (*write_pending_status)(struct se_cmd *);
78 void (*set_default_node_attributes)(struct se_node_acl *); 77 void (*set_default_node_attributes)(struct se_node_acl *);
79 int (*get_cmd_state)(struct se_cmd *); 78 int (*get_cmd_state)(struct se_cmd *);
80 int (*queue_data_in)(struct se_cmd *); 79 int (*queue_data_in)(struct se_cmd *);