• Hannes Reinecke's avatar
    dm mpath: always return reservation conflict without failing over · 8ff232c1
    Hannes Reinecke authored
    If dm-mpath encounters an reservation conflict it should not fail the
    path (as communication with the target is not affected) but should
    rather retry on another path.  However, in doing so we might be inducing
    a ping-pong between paths, with no guarantee of any forward progress.
    And arguably a reservation conflict is an unexpected error, so we should
    be passing it upwards to allow the application to take appropriate
    steps.
    
    This change resolves a show-stopper problem seen with the pNFS SCSI
    layout because it is trivial to hit reservation conflict based failover
    loops without it.
    
    Doubts were raised about the implications of this change relative to
    products like IBM's SVC.  But there is little point withholding a fix
    for Linux because a proprietary product may or may not have some issues
    in its implementation of how it interfaces with Linux.  In the future,
    if there is glaring evidence that this change is certainly problematic
    we can revisit it.
    Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
    Acked-by: default avatarChristoph Hellwig <hch@lst.de>
    Tested-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com> # tweaked header
    8ff232c1
dm-mpath.c 50.8 KB