Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Bart Van Assche and committed by
Martin K. Petersen
f80d2f08 e18e9dac

-120
-8
Documentation/target/tcm_mod_builder.py
··· 297 297 buf += " .sess_get_index = " + fabric_mod_name + "_sess_get_index,\n" 298 298 buf += " .sess_get_initiator_sid = NULL,\n" 299 299 buf += " .write_pending = " + fabric_mod_name + "_write_pending,\n" 300 - buf += " .write_pending_status = " + fabric_mod_name + "_write_pending_status,\n" 301 300 buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n" 302 301 buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n" 303 302 buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n" ··· 477 478 buf += " return 0;\n" 478 479 buf += "}\n\n" 479 480 bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n" 480 - 481 - if re.search('write_pending_status\)\(', fo): 482 - buf += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *se_cmd)\n" 483 - buf += "{\n" 484 - buf += " return 0;\n" 485 - buf += "}\n\n" 486 - bufi += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *);\n" 487 481 488 482 if re.search('set_default_node_attributes\)\(', fo): 489 483 buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n"
-9
drivers/infiniband/ulp/srpt/ib_srpt.c
··· 2703 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 2707 * srpt_write_pending - Start data transfer from initiator to target (write). 2716 2708 */ ··· 3798 3806 .sess_get_index = srpt_sess_get_index, 3799 3807 .sess_get_initiator_sid = NULL, 3800 3808 .write_pending = srpt_write_pending, 3801 - .write_pending_status = srpt_write_pending_status, 3802 3809 .set_default_node_attributes = srpt_set_default_node_attrs, 3803 3810 .get_cmd_state = srpt_get_tcm_cmd_state, 3804 3811 .queue_data_in = srpt_queue_data_in,
-6
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
··· 3788 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 3791 static void ibmvscsis_set_default_node_attrs(struct se_node_acl *nacl) 3797 3792 { 3798 3793 } ··· 4048 4053 .release_cmd = ibmvscsis_release_cmd, 4049 4054 .sess_get_index = ibmvscsis_sess_get_index, 4050 4055 .write_pending = ibmvscsis_write_pending, 4051 - .write_pending_status = ibmvscsis_write_pending_status, 4052 4056 .set_default_node_attributes = ibmvscsis_set_default_node_attrs, 4053 4057 .get_cmd_state = ibmvscsis_get_cmd_state, 4054 4058 .queue_data_in = ibmvscsis_queue_data_in,
-31
drivers/scsi/qla2xxx/tcm_qla2xxx.c
··· 420 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 423 static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl) 444 424 { 445 425 return; ··· 517 537 518 538 cmd->qpair->tgt_counters.qla_core_ret_ctio++; 519 539 if (!cmd->write_data_transferred) { 520 - /* 521 - * Check if se_cmd has already been aborted via LUN_RESET, and 522 - * waiting upon completion in tcm_qla2xxx_write_pending_status() 523 - */ 524 - if (cmd->se_cmd.transport_state & CMD_T_ABORTED) { 525 - complete(&cmd->se_cmd.t_transport_stop_comp); 526 - return; 527 - } 528 - 529 540 switch (cmd->dif_err_code) { 530 541 case DIF_ERR_GRD: 531 542 cmd->se_cmd.pi_err = ··· 1873 1902 .sess_get_index = tcm_qla2xxx_sess_get_index, 1874 1903 .sess_get_initiator_sid = NULL, 1875 1904 .write_pending = tcm_qla2xxx_write_pending, 1876 - .write_pending_status = tcm_qla2xxx_write_pending_status, 1877 1905 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs, 1878 1906 .get_cmd_state = tcm_qla2xxx_get_cmd_state, 1879 1907 .queue_data_in = tcm_qla2xxx_queue_data_in, ··· 1913 1943 .sess_get_index = tcm_qla2xxx_sess_get_index, 1914 1944 .sess_get_initiator_sid = NULL, 1915 1945 .write_pending = tcm_qla2xxx_write_pending, 1916 - .write_pending_status = tcm_qla2xxx_write_pending_status, 1917 1946 .set_default_node_attributes = tcm_qla2xxx_set_default_node_attrs, 1918 1947 .get_cmd_state = tcm_qla2xxx_get_cmd_state, 1919 1948 .queue_data_in = tcm_qla2xxx_queue_data_in,
-13
drivers/target/iscsi/iscsi_target_configfs.c
··· 1389 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 1392 static int lio_queue_status(struct se_cmd *se_cmd) 1405 1393 { 1406 1394 struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd); ··· 1552 1564 .sess_get_index = lio_sess_get_index, 1553 1565 .sess_get_initiator_sid = lio_sess_get_initiator_sid, 1554 1566 .write_pending = lio_write_pending, 1555 - .write_pending_status = lio_write_pending_status, 1556 1567 .set_default_node_attributes = lio_set_default_node_attributes, 1557 1568 .get_cmd_state = iscsi_get_cmd_state, 1558 1569 .queue_data_in = lio_queue_data_in,
-6
drivers/target/loopback/tcm_loop.c
··· 560 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 563 static int tcm_loop_queue_data_in(struct se_cmd *se_cmd) 569 564 { 570 565 struct tcm_loop_cmd *tl_cmd = container_of(se_cmd, ··· 1154 1159 .release_cmd = tcm_loop_release_cmd, 1155 1160 .sess_get_index = tcm_loop_sess_get_index, 1156 1161 .write_pending = tcm_loop_write_pending, 1157 - .write_pending_status = tcm_loop_write_pending_status, 1158 1162 .set_default_node_attributes = tcm_loop_set_default_node_attributes, 1159 1163 .get_cmd_state = tcm_loop_get_cmd_state, 1160 1164 .queue_data_in = tcm_loop_queue_data_in,
-6
drivers/target/sbp/sbp_target.c
··· 1749 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 1752 static void sbp_set_default_node_attrs(struct se_node_acl *nacl) 1758 1753 { 1759 1754 return; ··· 2324 2329 .release_cmd = sbp_release_cmd, 2325 2330 .sess_get_index = sbp_sess_get_index, 2326 2331 .write_pending = sbp_write_pending, 2327 - .write_pending_status = sbp_write_pending_status, 2328 2332 .set_default_node_attributes = sbp_set_default_node_attrs, 2329 2333 .get_cmd_state = sbp_get_cmd_state, 2330 2334 .queue_data_in = sbp_queue_data_in,
-4
drivers/target/target_core_configfs.c
··· 401 401 pr_err("Missing tfo->write_pending()\n"); 402 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 404 if (!tfo->set_default_node_attributes) { 409 405 pr_err("Missing tfo->set_default_node_attributes()\n"); 410 406 return -EINVAL;
-6
drivers/target/target_core_xcopy.c
··· 442 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 445 static int xcopy_pt_queue_data_in(struct se_cmd *se_cmd) 451 446 { 452 447 return 0; ··· 458 463 .release_cmd = xcopy_pt_release_cmd, 459 464 .check_stop_free = xcopy_pt_check_stop_free, 460 465 .write_pending = xcopy_pt_write_pending, 461 - .write_pending_status = xcopy_pt_write_pending_status, 462 466 .queue_data_in = xcopy_pt_queue_data_in, 463 467 .queue_status = xcopy_pt_queue_status, 464 468 };
-1
drivers/target/tcm_fc/tcm_fc.h
··· 158 158 int ft_queue_status(struct se_cmd *); 159 159 int ft_queue_data_in(struct se_cmd *); 160 160 int ft_write_pending(struct se_cmd *); 161 - int ft_write_pending_status(struct se_cmd *); 162 161 int ft_get_cmd_state(struct se_cmd *); 163 162 void ft_queue_tm_resp(struct se_cmd *); 164 163 void ft_aborted_task(struct se_cmd *);
-7
drivers/target/tcm_fc/tfc_cmd.c
··· 184 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 188 * Send TX_RDY (transfer ready). 196 189 */
-1
drivers/target/tcm_fc/tfc_conf.c
··· 437 437 .sess_get_index = ft_sess_get_index, 438 438 .sess_get_initiator_sid = NULL, 439 439 .write_pending = ft_write_pending, 440 - .write_pending_status = ft_write_pending_status, 441 440 .set_default_node_attributes = ft_set_default_node_attr, 442 441 .get_cmd_state = ft_get_cmd_state, 443 442 .queue_data_in = ft_queue_data_in,
-9
drivers/usb/gadget/function/f_tcm.c
··· 1292 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 1295 static void usbg_set_default_node_attrs(struct se_node_acl *nacl) 1304 1296 { 1305 1297 } ··· 1717 1725 .sess_get_index = usbg_sess_get_index, 1718 1726 .sess_get_initiator_sid = NULL, 1719 1727 .write_pending = usbg_send_write_request, 1720 - .write_pending_status = usbg_write_pending_status, 1721 1728 .set_default_node_attributes = usbg_set_default_node_attrs, 1722 1729 .get_cmd_state = usbg_get_cmd_state, 1723 1730 .queue_data_in = usbg_send_read_response,
-6
drivers/vhost/scsi.c
··· 346 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 349 static void vhost_scsi_set_default_node_attrs(struct se_node_acl *nacl) 355 350 { 356 351 return; ··· 2293 2298 .sess_get_index = vhost_scsi_sess_get_index, 2294 2299 .sess_get_initiator_sid = NULL, 2295 2300 .write_pending = vhost_scsi_write_pending, 2296 - .write_pending_status = vhost_scsi_write_pending_status, 2297 2301 .set_default_node_attributes = vhost_scsi_set_default_node_attrs, 2298 2302 .get_cmd_state = vhost_scsi_get_cmd_state, 2299 2303 .queue_data_in = vhost_scsi_queue_data_in,
-6
drivers/xen/xen-scsiback.c
··· 1404 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 1407 static void scsiback_set_default_node_attrs(struct se_node_acl *nacl) 1413 1408 { 1414 1409 } ··· 1813 1818 .sess_get_index = scsiback_sess_get_index, 1814 1819 .sess_get_initiator_sid = NULL, 1815 1820 .write_pending = scsiback_write_pending, 1816 - .write_pending_status = scsiback_write_pending_status, 1817 1821 .set_default_node_attributes = scsiback_set_default_node_attrs, 1818 1822 .get_cmd_state = scsiback_get_cmd_state, 1819 1823 .queue_data_in = scsiback_queue_data_in,
-1
include/target/target_core_fabric.h
··· 74 74 u32 (*sess_get_initiator_sid)(struct se_session *, 75 75 unsigned char *, u32); 76 76 int (*write_pending)(struct se_cmd *); 77 - int (*write_pending_status)(struct se_cmd *); 78 77 void (*set_default_node_attributes)(struct se_node_acl *); 79 78 int (*get_cmd_state)(struct se_cmd *); 80 79 int (*queue_data_in)(struct se_cmd *);