diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-03-12 23:15:27 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-03-12 23:15:27 +0000 |
commit | ae38fd1e4c98588314a42097c5a5e77dcef23561 (patch) | |
tree | f9f10c203bb9e5fbad4810d1f8774c08dfad20ff /net/core | |
parent | 466a823d79f41d0713b272e48fd73e494b0588e0 (diff) |
Merge with Linux 2.3.50.
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/netfilter.c | 1 | ||||
-rw-r--r-- | net/core/skbuff.c | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/net/core/netfilter.c b/net/core/netfilter.c index 8b04435c3..18f697755 100644 --- a/net/core/netfilter.c +++ b/net/core/netfilter.c @@ -479,6 +479,7 @@ void nf_reinject(struct sk_buff *skb, struct nf_info *info, info->indev, info->outdev, &elem, info->okfn); } + br_read_unlock_bh(BR_NETPROTO_LOCK); switch (verdict) { case NF_ACCEPT: diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 30aa1f6bb..ecda47d7a 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4,7 +4,7 @@ * Authors: Alan Cox <iiitac@pyr.swan.ac.uk> * Florian La Roche <rzsfl@rz.uni-sb.de> * - * Version: $Id: skbuff.c,v 1.68 2000/02/18 16:47:18 davem Exp $ + * Version: $Id: skbuff.c,v 1.69 2000/03/06 03:47:58 davem Exp $ * * Fixes: * Alan Cox : Fixed the worst of the load balancer bugs. @@ -204,6 +204,7 @@ static inline void skb_headerinit(void *p, kmem_cache_t *cache, skb->rx_dev = NULL; #ifdef CONFIG_NETFILTER skb->nfmark = skb->nfreason = skb->nfcache = 0; + skb->nfct = NULL; #ifdef CONFIG_NETFILTER_DEBUG skb->nf_debug = 0; #endif @@ -246,6 +247,9 @@ void __kfree_skb(struct sk_buff *skb) } skb->destructor(skb); } +#ifdef CONFIG_NETFILTER + nf_conntrack_put(skb->nfct); +#endif #ifdef CONFIG_NET if(skb->rx_dev) dev_put(skb->rx_dev); @@ -282,6 +286,9 @@ struct sk_buff *skb_clone(struct sk_buff *skb, int gfp_mask) n->is_clone = 1; atomic_set(&n->users, 1); n->destructor = NULL; +#ifdef CONFIG_NETFILTER + nf_conntrack_get(skb->nfct); +#endif return n; } @@ -314,6 +321,8 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old) new->nfmark=old->nfmark; new->nfreason=old->nfreason; new->nfcache=old->nfcache; + new->nfct=old->nfct; + nf_conntrack_get(new->nfct); #ifdef CONFIG_NETFILTER_DEBUG new->nf_debug=old->nf_debug; #endif |