diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-11-07 11:02:32 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2018-01-14 23:06:29 -0500 |
commit | e0dba0128a662ab8540fcea76aca8ae27774c7da (patch) | |
tree | 6b578512bd813420654b71516e427fcbd1949f17 /fs/nfs | |
parent | b8b8d221090f2b469027f04e451ef1877cb1be08 (diff) | |
download | talos-op-linux-e0dba0128a662ab8540fcea76aca8ae27774c7da.tar.gz talos-op-linux-e0dba0128a662ab8540fcea76aca8ae27774c7da.zip |
NFSv4: Convert DELEGRETURN to use nfs4_handle_exception()
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index ea2b7e8db437..b704e08b390c 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -5764,6 +5764,10 @@ struct nfs4_delegreturndata { static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) { struct nfs4_delegreturndata *data = calldata; + struct nfs4_exception exception = { + .inode = data->inode, + .stateid = &data->stateid, + }; if (!nfs4_sequence_done(task, &data->res.seq_res)) return; @@ -5825,10 +5829,11 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) } /* Fallthrough */ default: - if (nfs4_async_handle_error(task, data->res.server, - NULL, NULL) == -EAGAIN) { + task->tk_status = nfs4_async_handle_exception(task, + data->res.server, task->tk_status, + &exception); + if (exception.retry) goto out_restart; - } } data->rpc_status = task->tk_status; return; |