linux/drivers/target/iscsi
Nicholas Bellinger 3e1c81a95f iscsi-target: Refactor RX PDU logic + export request PDU handling
This patch refactors existing traditional iscsi RX side PDU handling
to use iscsit_transport, and exports the necessary logic for external
transport modules.

This includes:

- Refactor iscsit_handle_scsi_cmd() into PDU setup / processing
- Add updated iscsit_handle_scsi_cmd() for tradtional iscsi code
- Add iscsit_set_unsoliticed_dataout() wrapper
- Refactor iscsit_handle_data_out() into PDU check / processing
- Add updated iscsit_handle_data_out() for tradtional iscsi code
- Add iscsit_handle_nop_out() + iscsit_handle_task_mgt_cmd() to
  accept pre-allocated struct iscsi_cmd
- Add iscsit_build_r2ts_for_cmd() caller for iscsi_target_transport
  to handle ISTATE_SEND_R2T for TX immediate queue
- Refactor main traditional iscsi iscsi_target_rx_thread() PDU switch
  into iscsi_target_rx_opcode() using iscsit_allocate_cmd()
- Turn iscsi_target_rx_thread() process context into NOP for
  ib_isert side work-queue.

v5 changes:

- Make iscsit_handle_scsi_cmd() static (Fengguang)
- Fix iscsit_handle_scsi_cmd() exception se_cmd leak (nab)

v3 changes:
- Add extra target_put_sess_cmd call in iscsit_add_reject_from_cmd
  after completion

v2 changes:

- Disable iscsit_ack_from_expstatsn() usage for RDMAExtentions=Yes
- Disable iscsit_allocate_datain_req() usage for RDMAExtentions=Yes
- Add target_get_sess_cmd() reference counting to
  iscsit_setup_scsi_cmd()
- Add TFO->lio_check_stop_free() fabric API caller
- Add export of iscsit_stop_dataout_timer() symbol
- Add iscsit_build_r2ts_for_cmd() for iscsit_transport->iscsit_get_dataout()
- Convert existing usage of iscsit_build_r2ts_for_cmd() to
  ->iscsit_get_dataout()
- Drop RDMAExtentions=Yes specific check in iscsit_build_r2ts_for_cmd()
- Fix RDMAExtentions -> RDMAExtensions typo (andy)
- Pass correct dump_payload value into iscsit_get_immediate_data()
  for iscsit_handle_scsi_cmd()

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2013-04-25 01:05:27 -07:00
..
iscsi_target_auth.c target/iscsi: Remove chap_set_random() 2013-04-25 01:05:22 -07:00
iscsi_target_auth.h
iscsi_target_configfs.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_configfs.h
iscsi_target_core.h iscsi-target: Add per transport iscsi_cmd alloc/free 2013-04-25 01:05:27 -07:00
iscsi_target_datain_values.c target/iscsi: Eliminate iscsi_cmd.data_length 2012-04-14 17:40:38 -07:00
iscsi_target_datain_values.h
iscsi_target_device.c target/iscsi: Remove unneeded wrapper functions 2012-02-25 14:37:47 -08:00
iscsi_target_device.h target/iscsi: Remove unneeded wrapper functions 2012-02-25 14:37:47 -08:00
iscsi_target_erl0.c target: iscsi: fix comment typos in target/iscsi drivers 2012-11-19 14:17:31 +01:00
iscsi_target_erl0.h
iscsi_target_erl1.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_erl1.h iscsit: use the itt_t abstract type 2012-10-03 14:21:50 -07:00
iscsi_target_erl2.c iscsi-target: Fix CmdSN comparison (use cmd->cmd_sn instead of cmd->stat_sn) 2013-01-10 21:00:37 -08:00
iscsi_target_erl2.h iscsit: proper endianess conversions 2012-10-03 14:39:22 -07:00
iscsi_target_login.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_login.h iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_nego.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_nego.h iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_nodeattrib.c iscsi-target: remove improper externs 2012-03-17 18:07:04 -07:00
iscsi_target_nodeattrib.h
iscsi_target_parameters.c iscsi-target: Add iser-target parameter keys + setup during login 2013-04-25 01:05:27 -07:00
iscsi_target_parameters.h iscsi-target: Add iser-target parameter keys + setup during login 2013-04-25 01:05:27 -07:00
iscsi_target_seq_pdu_list.c iscsi-target: Change iscsi_target_seq_pdu_list.c to honor MaxXmitDataSegmentLength 2012-10-02 13:17:33 -07:00
iscsi_target_seq_pdu_list.h target/iscsi: Fold _decide_list_to_build into _build_pdu_and_seq_lists 2012-04-14 17:40:38 -07:00
iscsi_target_stat.c target: don't truncate the fail intr address 2013-02-13 11:27:58 -08:00
iscsi_target_stat.h
iscsi_target_tmr.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_tmr.h
iscsi_target_tpg.c iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_tpg.h
iscsi_target_tq.c iscsi-target: Use list_first_entry() where appropriate 2012-11-06 20:55:45 -08:00
iscsi_target_tq.h iscsit: mark various functions static 2012-10-02 14:41:59 -07:00
iscsi_target_transport.c iscsi-target: Add iscsit_transport API template 2013-04-25 01:05:26 -07:00
iscsi_target_util.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target_util.h iscsi-target: Add per transport iscsi_cmd alloc/free 2013-04-25 01:05:27 -07:00
iscsi_target.c iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
iscsi_target.h iscsi-target: Refactor RX PDU logic + export request PDU handling 2013-04-25 01:05:27 -07:00
Kconfig target: iscsi_target depends on NET 2011-07-28 20:16:18 +00:00
Makefile iscsi-target: Add iscsit_transport API template 2013-04-25 01:05:26 -07:00