• Sagi Grimberg's avatar
    nvme: don't protect ns mutation with ns->head->lock · e164471d
    Sagi Grimberg authored
    Right now ns->head->lock is protecting namespace mutation
    which is wrong and unneeded. Move it to only protect
    against head mutations. While we're at it, remove unnecessary
    ns->head reference as we already have head pointer.
    
    The problem with this is that the head->lock spans
    mpath disk node I/O that may block under some conditions (if
    for example the controller is disconnecting or the path
    became inaccessible), The locking scheme does not allow any
    other path to enable itself, preventing blocked I/O to complete
    and forward-progress from there.
    
    This is a preparation patch for the fix in a subsequent patch
    where the disk I/O will also be done outside the head->lock.
    
    Fixes: 0d0b660f ("nvme: add ANA support")
    Signed-off-by: default avatarAnton Eidelman <anton@lightbitslabs.com>
    Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    e164471d
multipath.c 18.9 KB