Skip to content

Commit

Permalink
NFS: Add an nfs4_call_sync_custom() function
Browse files Browse the repository at this point in the history
There are a few cases where we need to manually configure the
rpc_task_setup structure to get the behavior we want.

Signed-off-by: Anna Schumaker <[email protected]>
  • Loading branch information
amschuma-ntap committed Aug 22, 2019
1 parent 1e672e3 commit 48c0585
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions fs/nfs/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1073,14 +1073,26 @@ static const struct rpc_call_ops nfs40_call_sync_ops = {
.rpc_call_done = nfs40_call_sync_done,
};

static int nfs4_call_sync_custom(struct rpc_task_setup *task_setup)
{
int ret;
struct rpc_task *task;

task = rpc_run_task(task_setup);
if (IS_ERR(task))
return PTR_ERR(task);

ret = task->tk_status;
rpc_put_task(task);
return ret;
}

static int nfs4_call_sync_sequence(struct rpc_clnt *clnt,
struct nfs_server *server,
struct rpc_message *msg,
struct nfs4_sequence_args *args,
struct nfs4_sequence_res *res)
{
int ret;
struct rpc_task *task;
struct nfs_client *clp = server->nfs_client;
struct nfs4_call_sync_data data = {
.seq_server = server,
Expand All @@ -1094,14 +1106,7 @@ static int nfs4_call_sync_sequence(struct rpc_clnt *clnt,
.callback_data = &data
};

task = rpc_run_task(&task_setup);
if (IS_ERR(task))
ret = PTR_ERR(task);
else {
ret = task->tk_status;
rpc_put_task(task);
}
return ret;
return nfs4_call_sync_custom(&task_setup);
}

int nfs4_call_sync(struct rpc_clnt *clnt,
Expand Down

0 comments on commit 48c0585

Please sign in to comment.