• Nicholas Bellinger's avatar
    iscsi-target: Refactor TX queue logic + export response PDU creation · 2ec5a8c1
    Nicholas Bellinger authored
    This patch refactors TX immediate + response queue handling to use
    the new iscsit_transport API callers, and exports the necessary
    traditional iscsi PDU response creation functions for iser-target
    to utilize.
    
    This includes:
    
    - Add iscsit_build_datain_pdu() for DATAIN PDU init + convert
      iscsit_build_datain_pdu()
    - Add iscsit_build_logout_rsp() for LOGOUT_RSP PDU init + convert
      iscsit_send_logout()
    - Add iscsit_build_nopin_rsp() for NOPIN_RSP PDU init + convert
      iscsit_send_nopin()
    - Add iscsit_build_rsp_pdu() for SCSI_RSP PDU init + convert
      iscsit_send_response()
    - Add iscsit_build_task_mgt_rsp for TM_RSP PDU init + convert
      iscsit_send_task_mgt_rsp()
    - Refactor immediate queue state switch into iscsit_immediate_queue()
    - Convert handle_immediate_queue() to use iscsit_transport caller
    - Refactor response queue state switch into iscsit_response_queue()
    - Convert handle_response_queue to use iscsit_transport caller
    - Export iscsit_logout_post_handler(), iscsit_increment_maxcmdsn()
      and iscsit_tmr_post_handler() for external transport module usage
    
    v5 changes:
    
    - Fix solicited NopIN handling with RDMAExtensions=No (nab)
    
    v3 changes:
    - Add iscsit_build_reject for REJECT PDU init + convert
      iscsit_send_reject()
    
    v2 changes:
    
    - Add iscsit_queue_rsp() for iscsit_transport->iscsit_queue_data_in()
      and iscsit_transport->iscsit_queue_status()
    - Update lio_queue_data_in() to use ->iscsit_queue_data_in()
    - Update lio_queue_status() to use ->iscsit_queue_status()
    - Use mutex_trylock() in iscsit_increment_maxcmdsn()
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    2ec5a8c1
iscsi_target.c 127 KB