• Nicholas Bellinger's avatar
    iser-target: Add missing target_put_sess_cmd for ImmedateData failure · 6cc44a6f
    Nicholas Bellinger authored
    This patch addresses a bug where an early exception for SCSI WRITE
    with ImmediateData=Yes was missing the target_put_sess_cmd() call
    to drop the extra se_cmd->cmd_kref reference obtained during the
    normal iscsit_setup_scsi_cmd() codepath execution.
    
    This bug was manifesting itself during session shutdown within
    isert_cq_rx_comp_err() where target_wait_for_sess_cmds() would
    end up waiting indefinately for the last se_cmd->cmd_kref put to
    occur for the failed SCSI WRITE + ImmediateData descriptors.
    
    This fix follows what traditional iscsi-target code already does
    for the same failure case within iscsit_get_immediate_data().
    Reported-by: default avatarSagi Grimberg <sagig@dev.mellanox.co.il>
    Cc: Sagi Grimberg <sagig@dev.mellanox.co.il>
    Cc: Or Gerlitz <ogerlitz@mellanox.com>
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    6cc44a6f
ib_isert.c 91.4 KB