]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
target: Add support for TMR percpu reference counting
authorNicholas Bellinger <nab@linux-iscsi.org>
Sat, 3 Jun 2017 13:41:03 +0000 (06:41 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 7 Jul 2017 05:57:55 +0000 (22:57 -0700)
commiteeb64d239ea664592ff8f1bce5546209a6593df5
treeadaa7dd7f68e731547b44d74c42c6bc9d4448bd4
parent12f66e4a0f7b5624901ba4301210e026c9ddf78d
target: Add support for TMR percpu reference counting

This patch introduces TMR percpu reference counting using
se_lun->lun_ref in transport_lookup_tmr_lun(), following
how existing non TMR per se_lun reference counting works
within transport_lookup_cmd_lun().

It also adds explicit transport_lun_remove_cmd() calls to
drop the reference in the three tmr related locations that
invoke transport_cmd_check_stop_to_fabric();

   - target_tmr_work() during normal ->queue_tm_rsp()
   - target_complete_tmr_failure() during error ->queue_tm_rsp()
   - transport_generic_handle_tmr() during early failure

Also, note the exception paths in transport_generic_free_cmd()
and transport_cmd_finish_abort() already check SCF_SE_LUN_CMD,
and will invoke transport_lun_remove_cmd() when necessary.

Reviewed-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Reviewed-by: Quinn Tran <quinn.tran@cavium.com>
Cc: Mike Christie <mchristi@redhat.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_device.c
drivers/target/target_core_transport.c