• Jenny Derzhavetz's avatar
    iser-target: Put the reference on commands waiting for unsol data · 3e03c4b0
    Jenny Derzhavetz authored
    The iscsi target core teardown sequence calls wait_conn for
    all active commands to finish gracefully by:
    - move the queue-pair to error state
    - drain all the completions
    - wait for the core to finish handling all session commands
    
    However, when tearing down a session while there are sequenced
    commands that are still waiting for unsolicited data outs, we can
    block forever as these are missing an extra reference put.
    
    We basically need the equivalent of iscsit_free_queue_reqs_for_conn()
    which is called after wait_conn has returned. Address this by an
    explicit walk on conn_cmd_list and put the extra reference.
    Signed-off-by: default avatarJenny Derzhavetz <jennyf@mellanox.com>
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Cc: <stable@vger.kernel.org> # v3.10+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    3e03c4b0
ib_isert.c 91.7 KB