summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorPavel Emelyanov2007-10-18 06:21:51 +0200
committerDavid S. Miller2007-10-18 06:21:51 +0200
commit309dd5fc872448e35634d510049642312ebc170d (patch)
tree5284d7b48980482ecba06b760ac16d9f94e66ea9 /net/core
parent[NET]: Introduce the sk_detach_filter() call (diff)
downloadkernel-qcow2-linux-309dd5fc872448e35634d510049642312ebc170d.tar.gz
kernel-qcow2-linux-309dd5fc872448e35634d510049642312ebc170d.tar.xz
kernel-qcow2-linux-309dd5fc872448e35634d510049642312ebc170d.zip
[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.c4
-rw-r--r--net/core/sock.c2
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)
}
if (fp)
- sk_filter_release(sk, fp);
+ sk_filter_uncharge(sk, fp);
return err;
}
@@ -442,7 +442,7 @@ int sk_detach_filter(struct sock *sk)
filter = rcu_dereference(sk->sk_filter);
if (filter) {
rcu_assign_pointer(sk->sk_filter, NULL);
- sk_filter_release(sk, filter);
+ sk_filter_uncharge(sk, filter);
ret = 0;
}
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)
filter = rcu_dereference(sk->sk_filter);
if (filter) {
- sk_filter_release(sk, filter);
+ sk_filter_uncharge(sk, filter);
rcu_assign_pointer(sk->sk_filter, NULL);
}