• Alex Leung's avatar
    target: Fix Task Aborted Status (TAS) handling · 68259b5a
    Alex Leung authored
    This patch addresses three of long standing issues wrt to Task
    Aborted Status (TAS) handling.
    
    The first is the incorrect assumption in core_tmr_handle_tas_abort()
    that TASK_ABORTED status is sent for the task referenced by TMR
    ABORT_TASK, and sending TASK_ABORTED status for TMR LUN_RESET on
    the same nexus the LUN_RESET was received.
    
    The second is to ensure the lun reference count is dropped within
    transport_cmd_finish_abort() by calling transport_lun_remove_cmd()
    before invoking transport_cmd_check_stop_to_fabric().
    
    The last is to fix the delayed TAS handling to allow outstanding
    WRITEs to complete before sending the TASK_ABORTED status. This
    includes changing transport_check_aborted_status() to avoid
    processing when SCF_SEND_DELAYED_TAS has not be set, and updating
    transport_send_task_abort() to drop the SCF_SENT_DELAYED_TAS
    check.
    Signed-off-by: default avatarAlex Leung <amleung21@yahoo.com>
    Cc: Alex Leung <amleung21@yahoo.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    68259b5a
target_core_transport.c 77.5 KB