]> git.baikalelectronics.ru Git - kernel.git/commit
NFS: Fix flexfiles read failover
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 11 Aug 2020 17:36:32 +0000 (13:36 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 12 Aug 2020 15:20:29 +0000 (11:20 -0400)
commitaf6135de43efc44796c1a9ae1ac2568ea99af1c9
tree2fc1fe8cdc849167b3cd0632ca799586d823cce6
parentb9a01281960aa469b16e095dd521af6556cde4d2
NFS: Fix flexfiles read failover

The current mirrored read failover code is correctly resetting the mirror
index between failed reads, however it is not able to actually flip the
RPC call over to the next RPC client.
The end result is that we keep resending the RPC call to the same client
over and over.

The fix is to use the pnfs_read_resend_pnfs() mechanism to schedule a
new RPC call, but we need to add the ability to pass in a mirror
index so that we always retry the next mirror in the list.

Fixes: 5c6570d52a2e ("pNFS/flexfiles: Fix layoutstats handling during read failovers")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/flexfilelayout/flexfilelayout.c
fs/nfs/pnfs.c
fs/nfs/pnfs.h