[PATCH] knfsd: make rpc threads pools numa aware
[safe/jmp/linux-2.6] / net / sunrpc / svcsock.c
index b78659a..cba85d1 100644 (file)
@@ -151,8 +151,9 @@ static void
 svc_sock_enqueue(struct svc_sock *svsk)
 {
        struct svc_serv *serv = svsk->sk_server;
-       struct svc_pool *pool = &serv->sv_pools[0];
+       struct svc_pool *pool;
        struct svc_rqst *rqstp;
+       int cpu;
 
        if (!(svsk->sk_flags &
              ( (1<<SK_CONN)|(1<<SK_DATA)|(1<<SK_CLOSE)|(1<<SK_DEFERRED)) ))
@@ -160,6 +161,10 @@ svc_sock_enqueue(struct svc_sock *svsk)
        if (test_bit(SK_DEAD, &svsk->sk_flags))
                return;
 
+       cpu = get_cpu();
+       pool = svc_pool_for_cpu(svsk->sk_server, cpu);
+       put_cpu();
+
        spin_lock_bh(&pool->sp_lock);
 
        if (!list_empty(&pool->sp_threads) &&