aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sock.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-12-08 16:15:38 -0500
committerDavid S. Miller <davem@davemloft.net>2010-12-08 16:47:38 -0500
commitfe6c791570efe717946ea7b7dd50aec96b70d551 (patch)
tree1becb5e8aea7a9c9a7d78f987bd73b0a5d8ee434 /include/net/sock.h
parentf8bf5681cf15f77692c8ad8cb95d059ff7c622c9 (diff)
parentf19872575ff7819a3723154657a497d9bca66b33 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/ath/ath9k/ar9003_eeprom.c net/llc/af_llc.c
Diffstat (limited to 'include/net/sock.h')
-rw-r--r--include/net/sock.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index 717cfbf649df..3482004e5c29 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1159,6 +1159,8 @@ extern void sk_common_release(struct sock *sk);
1159/* Initialise core socket variables */ 1159/* Initialise core socket variables */
1160extern void sock_init_data(struct socket *sock, struct sock *sk); 1160extern void sock_init_data(struct socket *sock, struct sock *sk);
1161 1161
1162extern void sk_filter_release_rcu(struct rcu_head *rcu);
1163
1162/** 1164/**
1163 * sk_filter_release - release a socket filter 1165 * sk_filter_release - release a socket filter
1164 * @fp: filter to remove 1166 * @fp: filter to remove
@@ -1169,7 +1171,7 @@ extern void sock_init_data(struct socket *sock, struct sock *sk);
1169static inline void sk_filter_release(struct sk_filter *fp) 1171static inline void sk_filter_release(struct sk_filter *fp)
1170{ 1172{
1171 if (atomic_dec_and_test(&fp->refcnt)) 1173 if (atomic_dec_and_test(&fp->refcnt))
1172 kfree(fp); 1174 call_rcu_bh(&fp->rcu, sk_filter_release_rcu);
1173} 1175}
1174 1176
1175static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) 1177static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp)