]> git.baikalelectronics.ru Git - kernel.git/commit
dm mpath: always return reservation conflict without failing over
authorHannes Reinecke <hare@suse.de>
Wed, 15 Jul 2015 11:23:24 +0000 (13:23 +0200)
committerMike Snitzer <snitzer@redhat.com>
Thu, 29 Sep 2016 14:57:07 +0000 (10:57 -0400)
commitf5958ed0d2055f3f8d6d692834912539635efe0f
treedb6ad1ed59eb2910d8b4b1050bf5fce0630882d7
parent3d313d425a8d7b51e238d3765acd12f3b079ac16
dm mpath: always return reservation conflict without failing over

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: Hannes Reinecke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com> # tweaked header
drivers/md/dm-mpath.c