pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGET
authorTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 14 Jul 2016 18:28:31 +0000 (14:28 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 19 Jul 2016 20:23:22 +0000 (16:23 -0400)
commit66b53f325876703b7ab815c482cd104609f8772c
tree619190809bc1734e1f4862e4c2d0e6a8444dda2e
parente85d7ee42003314652ab3ae2c60e3b8cd793b65f
pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGET

Instead of giving up altogether and falling back to doing I/O
through the MDS, which may make the situation worse, wait for
2 lease periods for the callback to resolve itself, and then
try destroying the existing layout.

Only if this was an attempt at getting a first layout, do we
give up altogether, as the server is clearly crazy.

Fixes: 183d9e7b112aa ("pnfs: rework LAYOUTGET retry handling")
Cc: stable@vger.kernel.org # 4.7
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
fs/nfs/pnfs.c