diff options
author | Bart Van Assche <bvanassche@acm.org> | 2019-01-25 13:34:43 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2019-02-04 21:23:59 -0500 |
commit | f80d2f0846b7b9ceb1f2a5951229ee4391edaebd (patch) | |
tree | d5859aaf2cb254dcdfcd389bf203102c271a3717 | |
parent | e18e9dac9cdc9f4d048115cd4b9b0ff40c190555 (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-x | Documentation/target/tcm_mod_builder.py | 8 | ||||
-rw-r--r-- | drivers/infiniband/ulp/srpt/ib_srpt.c | 9 | ||||
-rw-r--r-- | drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 6 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/tcm_qla2xxx.c | 31 | ||||
-rw-r--r-- | drivers/target/iscsi/iscsi_target_configfs.c | 13 | ||||
-rw-r--r-- | drivers/target/loopback/tcm_loop.c | 6 | ||||
-rw-r--r-- | drivers/target/sbp/sbp_target.c | 6 | ||||
-rw-r--r-- | drivers/target/target_core_configfs.c | 4 | ||||
-rw-r--r-- | drivers/target/target_core_xcopy.c | 6 | ||||
-rw-r--r-- | drivers/target/tcm_fc/tcm_fc.h | 1 | ||||
-rw-r--r-- | drivers/target/tcm_fc/tfc_cmd.c | 7 | ||||
-rw-r--r-- | drivers/target/tcm_fc/tfc_conf.c | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/function/f_tcm.c | 9 | ||||
-rw-r--r-- | drivers/vhost/scsi.c | 6 | ||||
-rw-r--r-- | drivers/xen/xen-scsiback.c | 6 | ||||
-rw-r--r-- | include/target/target_core_fabric.h | 1 |
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 | ||
2706 | static 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 | ||
3791 | static int ibmvscsis_write_pending_status(struct se_cmd *se_cmd) | ||
3792 | { | ||
3793 | return 0; | ||
3794 | } | ||
3795 | |||
3796 | static void ibmvscsis_set_default_node_attrs(struct se_node_acl *nacl) | 3791 | static 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 | ||
423 | static 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 | |||
443 | static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl) | 423 | static 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 | ||
1392 | static 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 | |||
1404 | static int lio_queue_status(struct se_cmd *se_cmd) | 1392 | static 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 | ||
563 | static int tcm_loop_write_pending_status(struct se_cmd *se_cmd) | ||
564 | { | ||
565 | return 0; | ||
566 | } | ||
567 | |||
568 | static int tcm_loop_queue_data_in(struct se_cmd *se_cmd) | 563 | static 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 | ||
1752 | static int sbp_write_pending_status(struct se_cmd *se_cmd) | ||
1753 | { | ||
1754 | return 0; | ||
1755 | } | ||
1756 | |||
1757 | static void sbp_set_default_node_attrs(struct se_node_acl *nacl) | 1752 | static 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 | ||
445 | static int xcopy_pt_write_pending_status(struct se_cmd *se_cmd) | ||
446 | { | ||
447 | return 0; | ||
448 | } | ||
449 | |||
450 | static int xcopy_pt_queue_data_in(struct se_cmd *se_cmd) | 445 | static 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 *); | |||
158 | int ft_queue_status(struct se_cmd *); | 158 | int ft_queue_status(struct se_cmd *); |
159 | int ft_queue_data_in(struct se_cmd *); | 159 | int ft_queue_data_in(struct se_cmd *); |
160 | int ft_write_pending(struct se_cmd *); | 160 | int ft_write_pending(struct se_cmd *); |
161 | int ft_write_pending_status(struct se_cmd *); | ||
162 | int ft_get_cmd_state(struct se_cmd *); | 161 | int ft_get_cmd_state(struct se_cmd *); |
163 | void ft_queue_tm_resp(struct se_cmd *); | 162 | void ft_queue_tm_resp(struct se_cmd *); |
164 | void ft_aborted_task(struct se_cmd *); | 163 | 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 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 | ||
187 | int 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 | */ | ||
1298 | static int usbg_write_pending_status(struct se_cmd *se_cmd) | ||
1299 | { | ||
1300 | return 0; | ||
1301 | } | ||
1302 | |||
1303 | static void usbg_set_default_node_attrs(struct se_node_acl *nacl) | 1295 | static 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 | ||
349 | static int vhost_scsi_write_pending_status(struct se_cmd *se_cmd) | ||
350 | { | ||
351 | return 0; | ||
352 | } | ||
353 | |||
354 | static void vhost_scsi_set_default_node_attrs(struct se_node_acl *nacl) | 349 | static 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 | ||
1407 | static int scsiback_write_pending_status(struct se_cmd *se_cmd) | ||
1408 | { | ||
1409 | return 0; | ||
1410 | } | ||
1411 | |||
1412 | static void scsiback_set_default_node_attrs(struct se_node_acl *nacl) | 1407 | static 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 *); |