NFS: Fix the NFS users of rpc_restart_call()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 31 Jul 2010 18:29:07 +0000 (14:29 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 4 Aug 2010 02:06:44 +0000 (22:06 -0400)
Fix up those functions that depend on knowing whether or not
rpc_restart_call is successful or not.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/internal.h
fs/nfs/nfs4proc.c

index d8bd619..699725f 100644 (file)
@@ -369,10 +369,9 @@ unsigned int nfs_page_array_len(unsigned int base, size_t len)
  * Helper for restarting RPC calls in the possible presence of NFSv4.1
  * sessions.
  */
-static inline void nfs_restart_rpc(struct rpc_task *task, const struct nfs_client *clp)
+static inline int nfs_restart_rpc(struct rpc_task *task, const struct nfs_client *clp)
 {
        if (nfs4_has_session(clp))
-               rpc_restart_call_prepare(task);
-       else
-               rpc_restart_call(task);
+               return rpc_restart_call_prepare(task);
+       return rpc_restart_call(task);
 }
index 101bf40..7ffbb98 100644 (file)
@@ -446,9 +446,7 @@ out:
        nfs41_sequence_free_slot(res);
        return 1;
 out_retry:
-       rpc_restart_call(task);
-       /* FIXME: rpc_restart_call() should be made to return success/fail */
-       if (task->tk_action == NULL)
+       if (!rpc_restart_call(task))
                goto out;
        rpc_delay(task, NFS4_POLL_RETRY_MAX);
        return 0;