• Sagi Grimberg's avatar
    Target/iser: Fix iscsit_accept_np and rdma_cm racy flow · 531b7bf4
    Sagi Grimberg authored
    RDMA CM and iSCSI target flows are asynchronous and completely
    uncorrelated. Relying on the fact that iscsi_accept_np will be called
    after CM connection request event and will wait for it is a mistake.
    
    When attempting to login to a few targets this flow is racy and
    unpredictable, but for parallel login to dozens of targets will
    race and hang every time.
    
    The correct synchronizing mechanism in this case is pending on
    a semaphore rather than a wait_for_event. We keep the pending
    interruptible for iscsi_np cleanup stage.
    
    (Squash patch to remove dead code into parent - nab)
    Reported-by: default avatarSlava Shwartsman <valyushash@gmail.com>
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    531b7bf4
ib_isert.c 91.1 KB