diff options
author | Trond Myklebust <trondmy@gmail.com> | 2018-08-15 21:35:45 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2018-08-16 13:47:09 -0400 |
commit | ea51f94b45a0fd657c61206c1b648cc72f95befa (patch) | |
tree | 53dc98c4c920a71505c21750cd1537487daa9c91 | |
parent | ecf8402603d4df1278231439bbe5e92af4e02a17 (diff) |
pNFS: Treat RECALLCONFLICT like DELAY...
Yes, it is possible to get trapped in a loop, but the server should be
administratively revoking the recalled layout if it never gets returned.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r-- | fs/nfs/pnfs.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index cf9912a95f5d..e11e666ea477 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c | |||
@@ -1982,15 +1982,6 @@ lookup_again: | |||
1982 | lseg = NULL; | 1982 | lseg = NULL; |
1983 | break; | 1983 | break; |
1984 | case -ERECALLCONFLICT: | 1984 | case -ERECALLCONFLICT: |
1985 | /* Huh? We hold no layouts, how is there a recall? */ | ||
1986 | if (first) { | ||
1987 | lseg = NULL; | ||
1988 | break; | ||
1989 | } | ||
1990 | /* Destroy the existing layout and start over */ | ||
1991 | if (time_after(jiffies, giveup)) | ||
1992 | pnfs_destroy_layout(NFS_I(ino)); | ||
1993 | /* Fallthrough */ | ||
1994 | case -EAGAIN: | 1985 | case -EAGAIN: |
1995 | break; | 1986 | break; |
1996 | default: | 1987 | default: |