aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
Diffstat (limited to 'net/core')
-rw-r--r--net/core/filter.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index f3b2d5e9fe5f..42c1944b0c63 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -841,6 +841,12 @@ static void sk_release_orig_filter(struct sk_filter *fp)
841 } 841 }
842} 842}
843 843
844static void __sk_filter_release(struct sk_filter *fp)
845{
846 sk_release_orig_filter(fp);
847 sk_filter_free(fp);
848}
849
844/** 850/**
845 * sk_filter_release_rcu - Release a socket filter by rcu_head 851 * sk_filter_release_rcu - Release a socket filter by rcu_head
846 * @rcu: rcu_head that contains the sk_filter to free 852 * @rcu: rcu_head that contains the sk_filter to free
@@ -849,8 +855,7 @@ static void sk_filter_release_rcu(struct rcu_head *rcu)
849{ 855{
850 struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu); 856 struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu);
851 857
852 sk_release_orig_filter(fp); 858 __sk_filter_release(fp);
853 sk_filter_free(fp);
854} 859}
855 860
856/** 861/**
@@ -1050,7 +1055,7 @@ EXPORT_SYMBOL_GPL(sk_unattached_filter_create);
1050 1055
1051void sk_unattached_filter_destroy(struct sk_filter *fp) 1056void sk_unattached_filter_destroy(struct sk_filter *fp)
1052{ 1057{
1053 sk_filter_release(fp); 1058 __sk_filter_release(fp);
1054} 1059}
1055EXPORT_SYMBOL_GPL(sk_unattached_filter_destroy); 1060EXPORT_SYMBOL_GPL(sk_unattached_filter_destroy);
1056 1061