diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2010-12-22 12:56:10 +0900 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2010-12-22 12:56:10 +0900 |
| commit | 7ccbefe07ea0a3570e44d1ec13a307552ee4dadd (patch) | |
| tree | ba0299694a9f3940f289b6a29cadab853906e3d2 /include/net/sock.h | |
| parent | 623eb15647fc35c5a8cd38985d5958240eb072c1 (diff) | |
| parent | 90a8a73c06cc32b609a880d48449d7083327e11a (diff) | |
| download | linux-next-7ccbefe07ea0a3570e44d1ec13a307552ee4dadd.tar.gz linux-next-7ccbefe07ea0a3570e44d1ec13a307552ee4dadd.zip | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/net/sock.h')
| -rw-r--r-- | include/net/sock.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index a6338d039857..659d968d95c5 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1155,6 +1155,8 @@ extern void sk_common_release(struct sock *sk); /* Initialise core socket variables */ extern void sock_init_data(struct socket *sock, struct sock *sk); +extern void sk_filter_release_rcu(struct rcu_head *rcu); + /** * sk_filter_release - release a socket filter * @fp: filter to remove @@ -1165,7 +1167,7 @@ extern void sock_init_data(struct socket *sock, struct sock *sk); static inline void sk_filter_release(struct sk_filter *fp) { if (atomic_dec_and_test(&fp->refcnt)) - kfree(fp); + call_rcu_bh(&fp->rcu, sk_filter_release_rcu); } static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) |
