diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-05-20 14:06:24 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-05-20 14:08:05 -0400 |
commit | 250f972d85effad5b6e10da4bbd877e6a4b503b6 (patch) | |
tree | 007393a6fc6439af7e0121dd99a6f9f9fb8405bc /net/socket.c | |
parent | 7372b0b122af0f6675f3ab65bfd91c8a438e0480 (diff) | |
parent | bbe7b8bef48c567f5ff3f6041c1fb011292e8f12 (diff) |
Merge branch 'timers/urgent' into timers/core
Reason: Get upstream fixes and kfree_rcu which is necessary for a
follow up patch.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/net/socket.c b/net/socket.c index 310d16b1b3c9..c2ed7c95ce87 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -263,15 +263,6 @@ static struct inode *sock_alloc_inode(struct super_block *sb) | |||
263 | return &ei->vfs_inode; | 263 | return &ei->vfs_inode; |
264 | } | 264 | } |
265 | 265 | ||
266 | |||
267 | |||
268 | static void wq_free_rcu(struct rcu_head *head) | ||
269 | { | ||
270 | struct socket_wq *wq = container_of(head, struct socket_wq, rcu); | ||
271 | |||
272 | kfree(wq); | ||
273 | } | ||
274 | |||
275 | static void sock_destroy_inode(struct inode *inode) | 266 | static void sock_destroy_inode(struct inode *inode) |
276 | { | 267 | { |
277 | struct socket_alloc *ei; | 268 | struct socket_alloc *ei; |
@@ -279,7 +270,7 @@ static void sock_destroy_inode(struct inode *inode) | |||
279 | 270 | ||
280 | ei = container_of(inode, struct socket_alloc, vfs_inode); | 271 | ei = container_of(inode, struct socket_alloc, vfs_inode); |
281 | wq = rcu_dereference_protected(ei->socket.wq, 1); | 272 | wq = rcu_dereference_protected(ei->socket.wq, 1); |
282 | call_rcu(&wq->rcu, wq_free_rcu); | 273 | kfree_rcu(wq, rcu); |
283 | kmem_cache_free(sock_inode_cachep, ei); | 274 | kmem_cache_free(sock_inode_cachep, ei); |
284 | } | 275 | } |
285 | 276 | ||