NFS: Add an nfs4_call_sync_custom() function
authorAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 14 Aug 2019 19:27:00 +0000 (15:27 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 22 Aug 2019 14:05:06 +0000 (10:05 -0400)
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>
fs/nfs/nfs4proc.c

index 1406858bae6c95187c1190d3bb3b64bc5f317c58..e5b6499c0b8b7c5dbe93d261023e0f93aa3e810c 100644 (file)
@@ -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,
@@ -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,