Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c44fe705530ff9ea5e563bf9b65bdd29defe682b
Commit:     c44fe705530ff9ea5e563bf9b65bdd29defe682b
Parent:     4bef61ff7514396419563ca54fd42ef846485b06
Author:     Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Sat Jun 16 14:17:01 2007 -0400
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Tue Jul 10 23:40:28 2007 -0400

    SUNRPC: Clean up tk_pid allocation and make it lockless
    
    Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 net/sunrpc/sched.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index f56ebc5..0e9fbbd 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -25,7 +25,6 @@
 #ifdef RPC_DEBUG
 #define RPCDBG_FACILITY                RPCDBG_SCHED
 #define RPC_TASK_MAGIC_ID      0xf00baa
-static int                     rpc_task_id;
 #endif
 
 /*
@@ -268,17 +267,26 @@ static int rpc_wait_bit_interruptible(void *word)
        return 0;
 }
 
+#ifdef RPC_DEBUG
+static void rpc_task_set_debuginfo(struct rpc_task *task)
+{
+       static atomic_t rpc_pid;
+
+       task->tk_magic = RPC_TASK_MAGIC_ID;
+       task->tk_pid = atomic_inc_return(&rpc_pid);
+}
+#else
+static inline void rpc_task_set_debuginfo(struct rpc_task *task)
+{
+}
+#endif
+
 static void rpc_set_active(struct rpc_task *task)
 {
        struct rpc_clnt *clnt;
        if (test_and_set_bit(RPC_TASK_ACTIVE, &task->tk_runstate) != 0)
                return;
-#ifdef RPC_DEBUG
-       task->tk_magic = RPC_TASK_MAGIC_ID;
-       spin_lock(&rpc_sched_lock);
-       task->tk_pid = rpc_task_id++;
-       spin_unlock(&rpc_sched_lock);
-#endif
+       rpc_task_set_debuginfo(task);
        /* Add to global list of all tasks */
        clnt = task->tk_client;
        if (clnt != NULL) {
-
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