• Nicholas Bellinger's avatar
    target: Use complete_all for se_cmd->t_transport_stop_comp · a95d6511
    Nicholas Bellinger authored
    This patch fixes a bug where multiple waiters on ->t_transport_stop_comp
    occurs due to a concurrent ABORT_TASK and session reset both invoking
    transport_wait_for_tasks(), while waiting for the associated se_cmd
    descriptor backend processing to complete.
    
    For this case, complete_all() should be invoked in order to wake up
    both waiters in core_tmr_abort_task() + transport_generic_free_cmd()
    process contexts.
    
    Cc: Thomas Glanzmann <thomas@glanzmann.de>
    Cc: Charalampos Pournaris <charpour@gmail.com>
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    a95d6511
target_core_transport.c 79 KB