Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2efef837fb84f78cee7439804cb3722bffc64e75
Commit:     2efef837fb84f78cee7439804cb3722bffc64e75
Parent:     54cc533aaa0dc331ad126f0aacfb19572adee638
Author:     Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 3 13:38:41 2007 -0800
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Sat Feb 3 15:35:03 2007 -0800

    RPC: Clean up rpc_execute...
    
    The error values are already propagated through task->tk_status, and
    none of the callers check one without checking the other, so we can
    drop the return value.
    
    Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 include/linux/sunrpc/sched.h |    2 +-
 net/sunrpc/clnt.c            |   14 +++++---------
 net/sunrpc/sched.c           |   12 +++++-------
 3 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h
index 8b6ce60..de9fc57 100644
--- a/include/linux/sunrpc/sched.h
+++ b/include/linux/sunrpc/sched.h
@@ -253,7 +253,7 @@ void                rpc_put_task(struct rpc_task *);
 void           rpc_exit_task(struct rpc_task *);
 void           rpc_release_calldata(const struct rpc_call_ops *, void *);
 void           rpc_killall_tasks(struct rpc_clnt *);
-int            rpc_execute(struct rpc_task *);
+void           rpc_execute(struct rpc_task *);
 void           rpc_init_priority_wait_queue(struct rpc_wait_queue *, const 
char *);
 void           rpc_init_wait_queue(struct rpc_wait_queue *, const char *);
 void           rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *,
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 16c9fbc..e9d5f3c 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -486,17 +486,13 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct 
rpc_message *msg, int flags)
        /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */
        rpc_task_sigmask(task, &oldset);
 
-       rpc_call_setup(task, msg, 0);
-
        /* Set up the call info struct and execute the task */
+       rpc_call_setup(task, msg, 0);
+       if (task->tk_status == 0) {
+               atomic_inc(&task->tk_count);
+               rpc_execute(task);
+       }
        status = task->tk_status;
-       if (status != 0)
-               goto out;
-       atomic_inc(&task->tk_count);
-       status = rpc_execute(task);
-       if (status == 0)
-               status = task->tk_status;
-out:
        rpc_put_task(task);
        rpc_restore_sigmask(&oldset);
        return status;
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index fc083f0..13ab0c6 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -625,7 +625,7 @@ void rpc_release_calldata(const struct rpc_call_ops *ops, 
void *calldata)
 /*
  * This is the RPC `scheduler' (or rather, the finite state machine).
  */
-static int __rpc_execute(struct rpc_task *task)
+static void __rpc_execute(struct rpc_task *task)
 {
        int             status = 0;
 
@@ -679,9 +679,9 @@ static int __rpc_execute(struct rpc_task *task)
                if (RPC_IS_ASYNC(task)) {
                        /* Careful! we may have raced... */
                        if (RPC_IS_QUEUED(task))
-                               return 0;
+                               return;
                        if (rpc_test_and_set_running(task))
-                               return 0;
+                               return;
                        continue;
                }
 
@@ -710,7 +710,6 @@ static int __rpc_execute(struct rpc_task *task)
        dprintk("RPC: %4d, return %d, status %d\n", task->tk_pid, status, 
task->tk_status);
        /* Release all resources associated with the task */
        rpc_release_task(task);
-       return status;
 }
 
 /*
@@ -722,12 +721,11 @@ static int __rpc_execute(struct rpc_task *task)
  *      released. In particular note that tk_release() will have
  *      been called, so your task memory may have been freed.
  */
-int
-rpc_execute(struct rpc_task *task)
+void rpc_execute(struct rpc_task *task)
 {
        rpc_set_active(task);
        rpc_set_running(task);
-       return __rpc_execute(task);
+       __rpc_execute(task);
 }
 
 static void rpc_async_schedule(struct work_struct *work)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to