target: Add TFO->abort_task for aborted task resources release
commit 131e6abc upstream. Now that TASK_ABORTED status is not generated for all cases by TMR ABORT_TASK + LUN_RESET, a new TFO->abort_task() caller is necessary in order to give fabric drivers a chance to unmap hardware / software resources before the se_cmd descriptor is released via the normal TFO->release_cmd() codepath. This patch adds TFO->aborted_task() in core_tmr_abort_task() in place of the original transport_send_task_abort(), and also updates all fabric drivers to implement this caller. The fabric drivers that include changes to perform cleanup via ->aborted_task() are: - iscsi-target - iser-target - srpt - tcm_qla2xxx The fabric drivers that currently set ->aborted_task() to NOPs are: - loopback - tcm_fc - usb-gadget - sbp-target - vhost-scsi For the latter five, there appears to be no additional cleanup required before invoking TFO->release_cmd() to release the se_cmd descriptor. v2 changes: - Move ->aborted_task() call into transport_cmd_finish_abort (Alex) Cc: Alex Leung <amleung21@yahoo.com> Cc: Mark Rustad <mark.d.rustad@intel.com> Cc: Roland Dreier <roland@kernel.org> Cc: Vu Pham <vu@mellanox.com> Cc: Chris Boot <bootc@bootc.net> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Giridhar Malavali <giridhar.malavali@qlogic.com> Cc: Saurav Kashyap <saurav.kashyap@qlogic.com> Cc: Quinn Tran <quinn.tran@qlogic.com> Cc: Sagi Grimberg <sagig@mellanox.com> Cc: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by:Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
- drivers/infiniband/ulp/isert/ib_isert.c 19 additions, 0 deletionsdrivers/infiniband/ulp/isert/ib_isert.c
- drivers/infiniband/ulp/srpt/ib_srpt.c 9 additions, 0 deletionsdrivers/infiniband/ulp/srpt/ib_srpt.c
- drivers/scsi/qla2xxx/tcm_qla2xxx.c 16 additions, 0 deletionsdrivers/scsi/qla2xxx/tcm_qla2xxx.c
- drivers/target/iscsi/iscsi_target.c 13 additions, 0 deletionsdrivers/target/iscsi/iscsi_target.c
- drivers/target/iscsi/iscsi_target_configfs.c 8 additions, 0 deletionsdrivers/target/iscsi/iscsi_target_configfs.c
- drivers/target/iscsi/iscsi_target_util.c 2 additions, 2 deletionsdrivers/target/iscsi/iscsi_target_util.c
- drivers/target/iscsi/iscsi_target_util.h 1 addition, 0 deletionsdrivers/target/iscsi/iscsi_target_util.h
- drivers/target/loopback/tcm_loop.c 6 additions, 0 deletionsdrivers/target/loopback/tcm_loop.c
- drivers/target/sbp/sbp_target.c 6 additions, 0 deletionsdrivers/target/sbp/sbp_target.c
- drivers/target/target_core_configfs.c 4 additions, 0 deletionsdrivers/target/target_core_configfs.c
- drivers/target/target_core_transport.c 6 additions, 0 deletionsdrivers/target/target_core_transport.c
- drivers/target/tcm_fc/tcm_fc.h 1 addition, 0 deletionsdrivers/target/tcm_fc/tcm_fc.h
- drivers/target/tcm_fc/tfc_cmd.c 5 additions, 0 deletionsdrivers/target/tcm_fc/tfc_cmd.c
- drivers/target/tcm_fc/tfc_conf.c 1 addition, 0 deletionsdrivers/target/tcm_fc/tfc_conf.c
- drivers/usb/gadget/tcm_usb_gadget.c 6 additions, 0 deletionsdrivers/usb/gadget/tcm_usb_gadget.c
- drivers/vhost/scsi.c 6 additions, 0 deletionsdrivers/vhost/scsi.c
- include/target/iscsi/iscsi_transport.h 1 addition, 0 deletionsinclude/target/iscsi/iscsi_transport.h
- include/target/target_core_fabric.h 1 addition, 0 deletionsinclude/target/target_core_fabric.h
Loading
Please register or sign in to comment