• Alex Leung's avatar
    target: Add check to prevent Abort Task from aborting itself · 47b1584c
    Alex Leung authored
    This patch addresses an issue that occurs when an ABTS is received
    for an se_cmd that completes just before the sess_cmd_list is searched
    in core_tmr_abort_task(). When the sess_cmd_list is searched, since
    the ABTS and the FCP_CMND being aborted (that just completed) both
    have the same OXID, TFO->get_task_tag(TMR) returns a value that
    matches tmr->ref_task_tag (from TFO->get_task_tag(FCP_CMND)), and
    the Abort Task tries to abort itself. When this occurs,
    transport_wait_for_tasks() hangs forever since the TMR is waiting
    for itself to finish.
    
    This patch adds a check to core_tmr_abort_task() to make sure the
    TMR does not attempt to abort itself.
    Signed-off-by: default avatarAlex Leung <alex.leung@emulex.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    47b1584c
target_core_tmr.c 11.1 KB