iscsi-target: Perform release of acknowledged tags from RX context
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 3 Oct 2013 20:56:14 +0000 (13:56 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 3 Oct 2013 21:22:45 +0000 (14:22 -0700)
commitf56cbbb4b5871e5bc2838ddeeba5b29debc2a734
tree6ea3d9dd0b0bb7c652337ddf7d86f94268917a54
parente255a28598e8e63070322fc89bd34189dd660a89
iscsi-target: Perform release of acknowledged tags from RX context

This patch converts iscsit_ack_from_expstatsn() to populate a local
ack_list of commands, and call iscsit_free_cmd() directly from RX
thread context, instead of using iscsit_add_cmd_to_immediate_queue()
to queue the acknowledged commands to be released from TX thread
context.

It is helpful to release the acknowledge commands as quickly as
possible, along with the associated percpu_ida tags, in order to
prevent percpu_ida_alloc() from having to steal tags from other
CPUs while waiting for iscsit_free_cmd() to happen from TX thread
context.

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target.c