Skip to content

nvme-fabrics: fix state check in nvmf_ctlr_matches_baseopts()

Gopal Tiwari requested to merge gtiwari1/centos-stream-9:2043756 into main

Description: Controller deletion/reset, immediately followed by or concurrent with a reconnect, is hard failing the connect attempt resulting in a complete loss of connectivity to the controller.

    In the connect request, fabrics looks for an existing controller with
    the same address components and aborts the connect if a controller
    already exists and the duplicate connect option isn't set. The match
    routine filters out controllers that are dead or dying, so they don't
    interfere with the new connect request.

    When NVME_CTRL_DELETING_NOIO was added, it missed updating the state
    filters in the nvmf_ctlr_matches_baseopts() routine. Thus, when in this
    new state, it's seen as a live controller and fails the connect request.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2043756

Upstream status: git://git.infradead.org/nvme.git

Testing: Sanity only.

Signed-off-by: Gopal Tiwari gtiwari@redhat.com

Merge request reports