NFS: Add an nfs4_call_sync_custom() function
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 <Anna.Schumaker@Netapp.com>
This commit is contained in:
@@ -1073,14 +1073,26 @@ static const struct rpc_call_ops nfs40_call_sync_ops = {
|
|||||||
.rpc_call_done = nfs40_call_sync_done,
|
.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,
|
static int nfs4_call_sync_sequence(struct rpc_clnt *clnt,
|
||||||
struct nfs_server *server,
|
struct nfs_server *server,
|
||||||
struct rpc_message *msg,
|
struct rpc_message *msg,
|
||||||
struct nfs4_sequence_args *args,
|
struct nfs4_sequence_args *args,
|
||||||
struct nfs4_sequence_res *res)
|
struct nfs4_sequence_res *res)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
struct rpc_task *task;
|
|
||||||
struct nfs_client *clp = server->nfs_client;
|
struct nfs_client *clp = server->nfs_client;
|
||||||
struct nfs4_call_sync_data data = {
|
struct nfs4_call_sync_data data = {
|
||||||
.seq_server = server,
|
.seq_server = server,
|
||||||
@@ -1094,14 +1106,7 @@ static int nfs4_call_sync_sequence(struct rpc_clnt *clnt,
|
|||||||
.callback_data = &data
|
.callback_data = &data
|
||||||
};
|
};
|
||||||
|
|
||||||
task = rpc_run_task(&task_setup);
|
return nfs4_call_sync_custom(&task_setup);
|
||||||
if (IS_ERR(task))
|
|
||||||
ret = PTR_ERR(task);
|
|
||||||
else {
|
|
||||||
ret = task->tk_status;
|
|
||||||
rpc_put_task(task);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int nfs4_call_sync(struct rpc_clnt *clnt,
|
int nfs4_call_sync(struct rpc_clnt *clnt,
|
||||||
|
|||||||
Reference in New Issue
Block a user