• Sagi Grimberg's avatar
    iser-target: Fix flush + disconnect completion handling · 128e9cc8
    Sagi Grimberg authored
    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>
    Cc: <stable@vger.kernel.org> # v3.10+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    128e9cc8
ib_isert.h 4.27 KB