net,rcu: convert call_rcu(wq_free_rcu) to kfree_rcu()
Lai Jiangshan [Fri, 18 Mar 2011 04:10:25 +0000 (12:10 +0800)]
The rcu callback wq_free_rcu() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(wq_free_rcu).

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>

net/socket.c

index 310d16b..c2ed7c9 100644 (file)
@@ -263,15 +263,6 @@ static struct inode *sock_alloc_inode(struct super_block *sb)
        return &ei->vfs_inode;
 }
 
-
-
-static void wq_free_rcu(struct rcu_head *head)
-{
-       struct socket_wq *wq = container_of(head, struct socket_wq, rcu);
-
-       kfree(wq);
-}
-
 static void sock_destroy_inode(struct inode *inode)
 {
        struct socket_alloc *ei;
@@ -279,7 +270,7 @@ static void sock_destroy_inode(struct inode *inode)
 
        ei = container_of(inode, struct socket_alloc, vfs_inode);
        wq = rcu_dereference_protected(ei->socket.wq, 1);
-       call_rcu(&wq->rcu, wq_free_rcu);
+       kfree_rcu(wq, rcu);
        kmem_cache_free(sock_inode_cachep, ei);
 }