diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-10-18 00:21:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-10-18 00:21:51 -0400 |
commit | 309dd5fc872448e35634d510049642312ebc170d (patch) | |
tree | 5284d7b48980482ecba06b760ac16d9f94e66ea9 /net/core | |
parent | 55b333253d5bcafbe187b50474e40789301c53c6 (diff) |
[NET]: Move the filter releasing into a separate call
This is done merely as a preparation for the fix.
The sk_filter_uncharge() unaccounts the filter memory and calls
the sk_filter_release(), which in turn decrements the refcount
anf frees the filter.
The latter function will be required separately.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/filter.c | 4 | ||||
-rw-r--r-- | net/core/sock.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/net/core/filter.c b/net/core/filter.c index fd607581ab50..2be1830d3c35 100644 --- a/net/core/filter.c +++ b/net/core/filter.c | |||
@@ -429,7 +429,7 @@ int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk) | |||
429 | } | 429 | } |
430 | 430 | ||
431 | if (fp) | 431 | if (fp) |
432 | sk_filter_release(sk, fp); | 432 | sk_filter_uncharge(sk, fp); |
433 | return err; | 433 | return err; |
434 | } | 434 | } |
435 | 435 | ||
@@ -442,7 +442,7 @@ int sk_detach_filter(struct sock *sk) | |||
442 | filter = rcu_dereference(sk->sk_filter); | 442 | filter = rcu_dereference(sk->sk_filter); |
443 | if (filter) { | 443 | if (filter) { |
444 | rcu_assign_pointer(sk->sk_filter, NULL); | 444 | rcu_assign_pointer(sk->sk_filter, NULL); |
445 | sk_filter_release(sk, filter); | 445 | sk_filter_uncharge(sk, filter); |
446 | ret = 0; | 446 | ret = 0; |
447 | } | 447 | } |
448 | rcu_read_unlock_bh(); | 448 | rcu_read_unlock_bh(); |
diff --git a/net/core/sock.c b/net/core/sock.c index 07101381b8b7..d292b4113d6e 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -915,7 +915,7 @@ void sk_free(struct sock *sk) | |||
915 | 915 | ||
916 | filter = rcu_dereference(sk->sk_filter); | 916 | filter = rcu_dereference(sk->sk_filter); |
917 | if (filter) { | 917 | if (filter) { |
918 | sk_filter_release(sk, filter); | 918 | sk_filter_uncharge(sk, filter); |
919 | rcu_assign_pointer(sk->sk_filter, NULL); | 919 | rcu_assign_pointer(sk->sk_filter, NULL); |
920 | } | 920 | } |
921 | 921 | ||