summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-07-31 14:29:07 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-08-03 22:06:44 -0400
commitd05dd4e98f0dd30ee933e05ac9363614c47df83a (patch)
tree1b117bc9ffae9cac6de629a85220593b718f4728
parentf1f88fc7e818c6678c6799a2edb8f1aeccc124aa (diff)
downloadlinux-d05dd4e98f0dd30ee933e05ac9363614c47df83a.tar.bz2
NFS: Fix the NFS users of rpc_restart_call()
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>
-rw-r--r--fs/nfs/internal.h7
-rw-r--r--fs/nfs/nfs4proc.c4
2 files changed, 4 insertions, 7 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index d8bd619e386c..699725fee34f 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -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);
}
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 101bf403f507..7ffbb98ddec3 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -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;