• Sagi Grimberg's avatar
    iser-target: Fix flush + disconnect completion handling · 170b761c
    Sagi Grimberg authored
    commit 128e9cc8 upstream.
    
    ISER_CONN_UP state is not sufficient to know if
    we should wait for completion of flush errors and
    disconnected_handler event.
    
    Instead, split it to 2 states:
    - ISER_CONN_UP: Got to CM connected phase, This state
    indicates that we need to wait for a CM disconnect
    event before going to teardown.
    
    - ISER_CONN_FULL_FEATURE: Got to full feature phase
    after we posted login response, This state indicates
    that we posted recv buffers and we need to wait for
    flush completions before going to teardown.
    
    Also avoid deffering disconnected handler to a work,
    and handle it within disconnected handler.
    More work here is needed to handle DEVICE_REMOVAL event
    correctly (cleanup all resources).
    
    Squashed:
    
    iser-target: Don't deffer disconnected handler to a work
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    170b761c
ib_isert.c 92.4 KB