aboutsummaryrefslogtreecommitdiff
path: root/virt/kvm/ioapic.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2014-03-30 15:50:03 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-13 13:59:40 +0200
commitd306606e58d53a9d8cd78fefacbe9a50b3aa9fcd (patch)
tree4ff53131f6e1b06540a6f0415bb99a6810a68157 /virt/kvm/ioapic.c
parent50c648e394a0968f19d448b70bec82da88219963 (diff)
downloadlinux-linaro-stable-d306606e58d53a9d8cd78fefacbe9a50b3aa9fcd.tar.gz
iser-target: Add missing se_cmd put for WRITE_PENDING in tx_comp_err
commit 03e7848a64ed535a30f5d7fc6dede2d5a6a2534b upstream. This patch fixes a bug where outstanding RDMA_READs with WRITE_PENDING status require an extra target_put_sess_cmd() in isert_put_cmd() code when called from isert_cq_tx_comp_err() + isert_cq_drain_comp_llist() context during session shutdown. The extra kref PUT is required so that transport_generic_free_cmd() invokes the last target_put_sess_cmd() -> target_release_cmd_kref(), which will complete(&se_cmd->cmd_wait_comp) the outstanding se_cmd descriptor with WRITE_PENDING status, and awake the completion in target_wait_for_sess_cmds() to invoke TFO->release_cmd(). The bug was manifesting itself in target_wait_for_sess_cmds() where a se_cmd descriptor with WRITE_PENDING status would end up sleeping indefinately. Acked-by: 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>
Diffstat (limited to 'virt/kvm/ioapic.c')
0 files changed, 0 insertions, 0 deletions