diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2022-05-18 17:08:58 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2022-07-10 19:00:53 -0400 |
commit | 431794e67e238e6fd170499a14fd2abf0a16b5bd (patch) | |
tree | 80473b6bdc2f3a020a488056d8d6f704f1667ec3 /fs/nfs | |
parent | 7836d75467e9d214bdf5c693b32721de729a6e38 (diff) |
pNFS/files: Handle RDMA connection errors correctly
The RPC/RDMA driver will return -EPROTO and -ENODEV as connection errors
under certain circumstances. Make sure that we handle them correctly and
avoid cycling forever in a LAYOUTGET/LAYOUTRETURN loop.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/filelayout/filelayout.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c index 2b2661582bbe..ad34a33b0737 100644 --- a/fs/nfs/filelayout/filelayout.c +++ b/fs/nfs/filelayout/filelayout.c @@ -181,6 +181,8 @@ static int filelayout_async_handle_error(struct rpc_task *task, case -EIO: case -ETIMEDOUT: case -EPIPE: + case -EPROTO: + case -ENODEV: dprintk("%s DS connection error %d\n", __func__, task->tk_status); nfs4_mark_deviceid_unavailable(devid); |