• Sagi Grimberg's avatar
    nvme-rdma: Fix device removal handling · 57de5a0a
    Sagi Grimberg authored
    Device removal sequence may have crashed because the
    controller (and admin queue space) was freed before
    we destroyed the admin queue resources. Thus we
    want to destroy the admin queue and only then queue
    controller deletion and wait for it to complete.
    
    More specifically we:
    1. own the controller deletion (make sure we are not
       competing with another deletion).
    2. get rid of inflight reconnects if exists (which
       also destroy and create queues).
    3. destroy the queue.
    4. safely queue controller deletion (and wait for it
       to complete).
    Reported-by: default avatarSteve Wise <swise@opengridcomputing.com>
    Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    57de5a0a
rdma.c 50.4 KB