• Hannes Reinecke's avatar
    nvme-multipath: revalidate paths during rescan · e7d65803
    Hannes Reinecke authored
    When triggering a rescan due to a namespace resize we will be
    receiving AENs on every controller, triggering a rescan of all
    attached namespaces. If multipath is active only the current path and
    the ns_head disk will be updated, the other paths will still refer to
    the old size until AENs for the remaining controllers are received.
    
    If I/O comes in before that it might be routed to one of the old
    paths, triggering an I/O failure with 'access beyond end of device'.
    With this patch the old paths are skipped from multipath path
    selection until the controller serving these paths has been rescanned.
    Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
    [dwagner: - introduce NVME_NS_READY flag instead of NVME_NS_INVALIDATE
              - use 'revalidate' instead of 'invalidate' which
    	    follows the zoned device code path.
    	  - clear NVME_NS_READY before clearing current_path]
    Signed-off-by: default avatarDaniel Wagner <dwagner@suse.de>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    e7d65803
multipath.c 22.2 KB