All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Eric W. Biederman" <ebiederm@xmission.com>
To: David Miller <davem@davemloft.net>
Cc: netfilter-devel@vger.kernel.org, <netdev@vger.kernel.org>,
	Nicolas Dichtel <nicolas.dichtel@6wind.com>,
	lvs-devel@vger.kernel.org
Subject: [PATCH net-next 16/16] dst: Pass net into dst->output
Date: Wed,  7 Oct 2015 16:48:47 -0500	[thread overview]
Message-ID: <1444254527-17833-16-git-send-email-ebiederm@xmission.com> (raw)
In-Reply-To: <87bnca4aie.fsf_-_@x220.int.ebiederm.org>

The network namespace is already passed into dst_output pass it into
dst->output lwt->output and friends.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
---
 drivers/net/vrf.c        |  3 +--
 include/net/dst.h        |  8 ++++----
 include/net/ip.h         |  4 ++--
 include/net/ipv6.h       |  2 +-
 include/net/lwtunnel.h   |  8 ++++----
 include/net/xfrm.h       |  6 +++---
 net/core/dst.c           | 14 +++++++-------
 net/core/lwtunnel.c      |  4 ++--
 net/decnet/dn_route.c    |  6 +++---
 net/ipv4/ip_output.c     |  6 ++----
 net/ipv4/route.c         |  4 ++--
 net/ipv4/xfrm4_output.c  |  4 +---
 net/ipv6/ila.c           |  4 ++--
 net/ipv6/ip6_output.c    |  3 +--
 net/ipv6/route.c         | 14 +++++++-------
 net/ipv6/xfrm6_output.c  |  4 +---
 net/mpls/mpls_iptunnel.c |  2 +-
 net/xfrm/xfrm_policy.c   |  2 +-
 18 files changed, 45 insertions(+), 53 deletions(-)

diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index 21bb7deb6d58..191579aeab16 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -312,10 +312,9 @@ err:
 	return ret;
 }
 
-static int vrf_output(struct sock *sk, struct sk_buff *skb)
+static int vrf_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
-	struct net *net = dev_net(dev);
 
 	IP_UPD_PO_STATS(net, IPSTATS_MIB_OUT, skb->len);
 
diff --git a/include/net/dst.h b/include/net/dst.h
index fdd01fed1a7b..1279f9b09791 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -45,7 +45,7 @@ struct dst_entry {
 	void			*__pad1;
 #endif
 	int			(*input)(struct sk_buff *);
-	int			(*output)(struct sock *sk, struct sk_buff *skb);
+	int			(*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 
 	unsigned short		flags;
 #define DST_HOST		0x0001
@@ -365,10 +365,10 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev,
 	__skb_tunnel_rx(skb, dev, net);
 }
 
-int dst_discard_sk(struct sock *sk, struct sk_buff *skb);
+int dst_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static inline int dst_discard(struct sk_buff *skb)
 {
-	return dst_discard_sk(skb->sk, skb);
+	return dst_discard_out(&init_net, skb->sk, skb);
 }
 void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref,
 		int initial_obsolete, unsigned short flags);
@@ -456,7 +456,7 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout)
 /* Output packet to network from transport.  */
 static inline int dst_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	return skb_dst(skb)->output(sk, skb);
+	return skb_dst(skb)->output(net, sk, skb);
 }
 
 /* Input packet from network to transport.  */
diff --git a/include/net/ip.h b/include/net/ip.h
index 7febbab784cd..3c904a28d5e5 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -107,8 +107,8 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
 	   struct net_device *orig_dev);
 int ip_local_deliver(struct sk_buff *skb);
 int ip_mr_input(struct sk_buff *skb);
-int ip_output(struct sock *sk, struct sk_buff *skb);
-int ip_mc_output(struct sock *sk, struct sk_buff *skb);
+int ip_output(struct net *net, struct sock *sk, struct sk_buff *skb);
+int ip_mc_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int ip_do_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
 		   int (*output)(struct net *, struct sock *, struct sk_buff *));
 void ip_send_check(struct iphdr *ip);
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index fce8120c2be3..e1a10b0ac0b0 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -860,7 +860,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net,
  *	skb processing functions
  */
 
-int ip6_output(struct sock *sk, struct sk_buff *skb);
+int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int ip6_forward(struct sk_buff *skb);
 int ip6_input(struct sk_buff *skb);
 int ip6_mc_input(struct sk_buff *skb);
diff --git a/include/net/lwtunnel.h b/include/net/lwtunnel.h
index fce0e35e74d0..66350ce3e955 100644
--- a/include/net/lwtunnel.h
+++ b/include/net/lwtunnel.h
@@ -18,7 +18,7 @@ struct lwtunnel_state {
 	__u16		type;
 	__u16		flags;
 	atomic_t	refcnt;
-	int		(*orig_output)(struct sock *sk, struct sk_buff *skb);
+	int		(*orig_output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int		(*orig_input)(struct sk_buff *);
 	int             len;
 	__u8            data[0];
@@ -28,7 +28,7 @@ struct lwtunnel_encap_ops {
 	int (*build_state)(struct net_device *dev, struct nlattr *encap,
 			   unsigned int family, const void *cfg,
 			   struct lwtunnel_state **ts);
-	int (*output)(struct sock *sk, struct sk_buff *skb);
+	int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int (*input)(struct sk_buff *skb);
 	int (*fill_encap)(struct sk_buff *skb,
 			  struct lwtunnel_state *lwtstate);
@@ -88,7 +88,7 @@ int lwtunnel_fill_encap(struct sk_buff *skb,
 int lwtunnel_get_encap_size(struct lwtunnel_state *lwtstate);
 struct lwtunnel_state *lwtunnel_state_alloc(int hdr_len);
 int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b);
-int lwtunnel_output(struct sock *sk, struct sk_buff *skb);
+int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int lwtunnel_input(struct sk_buff *skb);
 
 #else
@@ -160,7 +160,7 @@ static inline int lwtunnel_cmp_encap(struct lwtunnel_state *a,
 	return 0;
 }
 
-static inline int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
+static inline int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	return -EOPNOTSUPP;
 }
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index fd176106909a..4a9c21f9b4ea 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -333,7 +333,7 @@ struct xfrm_state_afinfo {
 						const xfrm_address_t *saddr);
 	int			(*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n);
 	int			(*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n);
-	int			(*output)(struct sock *sk, struct sk_buff *skb);
+	int			(*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int			(*output_finish)(struct sock *sk, struct sk_buff *skb);
 	int			(*extract_input)(struct xfrm_state *x,
 						 struct sk_buff *skb);
@@ -1527,7 +1527,7 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
 
 int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb);
 int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-int xfrm4_output(struct sock *sk, struct sk_buff *skb);
+int xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int xfrm4_output_finish(struct sock *sk, struct sk_buff *skb);
 int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err);
 int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol);
@@ -1552,7 +1552,7 @@ __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr);
 __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr);
 int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb);
 int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-int xfrm6_output(struct sock *sk, struct sk_buff *skb);
+int xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int xfrm6_output_finish(struct sock *sk, struct sk_buff *skb);
 int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb,
 			  u8 **prevhdr);
diff --git a/net/core/dst.c b/net/core/dst.c
index 0771c8cb9307..2a1818065e12 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -144,12 +144,12 @@ loop:
 	mutex_unlock(&dst_gc_mutex);
 }
 
-int dst_discard_sk(struct sock *sk, struct sk_buff *skb)
+int dst_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	kfree_skb(skb);
 	return 0;
 }
-EXPORT_SYMBOL(dst_discard_sk);
+EXPORT_SYMBOL(dst_discard_out);
 
 const u32 dst_default_metrics[RTAX_MAX + 1] = {
 	/* This initializer is needed to force linker to place this variable
@@ -177,7 +177,7 @@ void dst_init(struct dst_entry *dst, struct dst_ops *ops,
 	dst->xfrm = NULL;
 #endif
 	dst->input = dst_discard;
-	dst->output = dst_discard_sk;
+	dst->output = dst_discard_out;
 	dst->error = 0;
 	dst->obsolete = initial_obsolete;
 	dst->header_len = 0;
@@ -224,7 +224,7 @@ static void ___dst_free(struct dst_entry *dst)
 	 */
 	if (dst->dev == NULL || !(dst->dev->flags&IFF_UP)) {
 		dst->input = dst_discard;
-		dst->output = dst_discard_sk;
+		dst->output = dst_discard_out;
 	}
 	dst->obsolete = DST_OBSOLETE_DEAD;
 }
@@ -352,7 +352,7 @@ static struct dst_ops md_dst_ops = {
 	.family =		AF_UNSPEC,
 };
 
-static int dst_md_discard_sk(struct sock *sk, struct sk_buff *skb)
+static int dst_md_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	WARN_ONCE(1, "Attempting to call output on metadata dst\n");
 	kfree_skb(skb);
@@ -375,7 +375,7 @@ static void __metadata_dst_init(struct metadata_dst *md_dst, u8 optslen)
 		 DST_METADATA | DST_NOCACHE | DST_NOCOUNT);
 
 	dst->input = dst_md_discard;
-	dst->output = dst_md_discard_sk;
+	dst->output = dst_md_discard_out;
 
 	memset(dst + 1, 0, sizeof(*md_dst) + optslen - sizeof(*dst));
 }
@@ -430,7 +430,7 @@ static void dst_ifdown(struct dst_entry *dst, struct net_device *dev,
 
 	if (!unregister) {
 		dst->input = dst_discard;
-		dst->output = dst_discard_sk;
+		dst->output = dst_discard_out;
 	} else {
 		dst->dev = dev_net(dst->dev)->loopback_dev;
 		dev_hold(dst->dev);
diff --git a/net/core/lwtunnel.c b/net/core/lwtunnel.c
index dfb1a9ca0835..299cfc24d888 100644
--- a/net/core/lwtunnel.c
+++ b/net/core/lwtunnel.c
@@ -180,7 +180,7 @@ int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b)
 }
 EXPORT_SYMBOL(lwtunnel_cmp_encap);
 
-int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
+int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 	const struct lwtunnel_encap_ops *ops;
@@ -199,7 +199,7 @@ int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
 	rcu_read_lock();
 	ops = rcu_dereference(lwtun_encaps[lwtstate->type]);
 	if (likely(ops && ops->output))
-		ret = ops->output(sk, skb);
+		ret = ops->output(net, sk, skb);
 	rcu_read_unlock();
 
 	if (ret == -EOPNOTSUPP)
diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c
index e930321e2c1d..27fce283117b 100644
--- a/net/decnet/dn_route.c
+++ b/net/decnet/dn_route.c
@@ -744,7 +744,7 @@ out:
 	return NET_RX_DROP;
 }
 
-static int dn_output(struct sock *sk, struct sk_buff *skb)
+static int dn_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 	struct dn_route *rt = (struct dn_route *)dst;
@@ -832,7 +832,7 @@ drop:
  * Used to catch bugs. This should never normally get
  * called.
  */
-static int dn_rt_bug_sk(struct sock *sk, struct sk_buff *skb)
+static int dn_rt_bug_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dn_skb_cb *cb = DN_SKB_CB(skb);
 
@@ -1469,7 +1469,7 @@ make_route:
 
 	rt->n = neigh;
 	rt->dst.lastuse = jiffies;
-	rt->dst.output = dn_rt_bug_sk;
+	rt->dst.output = dn_rt_bug_out;
 	switch (res.type) {
 	case RTN_UNICAST:
 		rt->dst.input = dn_forward;
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 9fe100a41e5d..67404e1fe7d4 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -284,11 +284,10 @@ static int ip_finish_output(struct net *net, struct sock *sk, struct sk_buff *sk
 	return ip_finish_output2(net, sk, skb);
 }
 
-int ip_mc_output(struct sock *sk, struct sk_buff *skb)
+int ip_mc_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct rtable *rt = skb_rtable(skb);
 	struct net_device *dev = rt->dst.dev;
-	struct net *net = dev_net(dev);
 
 	/*
 	 *	If the indicated interface is up and running, send the packet.
@@ -347,10 +346,9 @@ int ip_mc_output(struct sock *sk, struct sk_buff *skb)
 			    !(IPCB(skb)->flags & IPSKB_REROUTED));
 }
 
-int ip_output(struct sock *sk, struct sk_buff *skb)
+int ip_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
-	struct net *net = dev_net(dev);
 
 	IP_UPD_PO_STATS(net, IPSTATS_MIB_OUT, skb->len);
 
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index bf1486bd7e81..4be5ff08f98d 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1152,7 +1152,7 @@ static void ipv4_link_failure(struct sk_buff *skb)
 		dst_set_expires(&rt->dst, 0);
 }
 
-static int ip_rt_bug(struct sock *sk, struct sk_buff *skb)
+static int ip_rt_bug(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	pr_debug("%s: %pI4 -> %pI4, %s\n",
 		 __func__, &ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr,
@@ -2303,7 +2303,7 @@ struct dst_entry *ipv4_blackhole_route(struct net *net, struct dst_entry *dst_or
 
 		new->__use = 1;
 		new->input = dst_discard;
-		new->output = dst_discard_sk;
+		new->output = dst_discard_out;
 
 		new->dev = ort->dst.dev;
 		if (new->dev)
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c
index 17db61f4b439..9f298d0dc9a1 100644
--- a/net/ipv4/xfrm4_output.c
+++ b/net/ipv4/xfrm4_output.c
@@ -94,10 +94,8 @@ static int __xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 	return x->outer_mode->afinfo->output_finish(sk, skb);
 }
 
-int xfrm4_output(struct sock *sk, struct sk_buff *skb)
+int xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	struct net *net = dev_net(skb_dst(skb)->dev);
-
 	return NF_HOOK_COND(NFPROTO_IPV4, NF_INET_POST_ROUTING,
 			    net, sk, skb, NULL, skb_dst(skb)->dev,
 			    __xfrm4_output,
diff --git a/net/ipv6/ila.c b/net/ipv6/ila.c
index 678d2df4b8d9..1a6852e1ac69 100644
--- a/net/ipv6/ila.c
+++ b/net/ipv6/ila.c
@@ -91,7 +91,7 @@ static void update_ipv6_locator(struct sk_buff *skb, struct ila_params *p)
 	*(__be64 *)&ip6h->daddr = p->locator;
 }
 
-static int ila_output(struct sock *sk, struct sk_buff *skb)
+static int ila_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 
@@ -100,7 +100,7 @@ static int ila_output(struct sock *sk, struct sk_buff *skb)
 
 	update_ipv6_locator(skb, ila_params_lwtunnel(dst->lwtstate));
 
-	return dst->lwtstate->orig_output(sk, skb);
+	return dst->lwtstate->orig_output(net, sk, skb);
 
 drop:
 	kfree_skb(skb);
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 98510fac94e9..32583b507c2e 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -130,11 +130,10 @@ static int ip6_finish_output(struct net *net, struct sock *sk, struct sk_buff *s
 		return ip6_finish_output2(net, sk, skb);
 }
 
-int ip6_output(struct sock *sk, struct sk_buff *skb)
+int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
 	struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
-	struct net *net = dev_net(dev);
 
 	if (unlikely(idev->cnf.disable_ipv6)) {
 		IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index d3d946773a3e..4320ddcac33f 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -86,9 +86,9 @@ static void		ip6_dst_ifdown(struct dst_entry *,
 static int		 ip6_dst_gc(struct dst_ops *ops);
 
 static int		ip6_pkt_discard(struct sk_buff *skb);
-static int		ip6_pkt_discard_out(struct sock *sk, struct sk_buff *skb);
+static int		ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static int		ip6_pkt_prohibit(struct sk_buff *skb);
-static int		ip6_pkt_prohibit_out(struct sock *sk, struct sk_buff *skb);
+static int		ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static void		ip6_link_failure(struct sk_buff *skb);
 static void		ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
 					   struct sk_buff *skb, u32 mtu);
@@ -308,7 +308,7 @@ static const struct rt6_info ip6_blk_hole_entry_template = {
 		.obsolete	= DST_OBSOLETE_FORCE_CHK,
 		.error		= -EINVAL,
 		.input		= dst_discard,
-		.output		= dst_discard_sk,
+		.output		= dst_discard_out,
 	},
 	.rt6i_flags	= (RTF_REJECT | RTF_NONEXTHOP),
 	.rt6i_protocol  = RTPROT_KERNEL,
@@ -1195,7 +1195,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, struct dst_entry *dst_ori
 
 		new->__use = 1;
 		new->input = dst_discard;
-		new->output = dst_discard_sk;
+		new->output = dst_discard_out;
 
 		if (dst_metrics_read_only(&ort->dst))
 			new->_metrics = ort->dst._metrics;
@@ -1853,7 +1853,7 @@ int ip6_route_info_create(struct fib6_config *cfg, struct rt6_info **rt_ret)
 		switch (cfg->fc_type) {
 		case RTN_BLACKHOLE:
 			rt->dst.error = -EINVAL;
-			rt->dst.output = dst_discard_sk;
+			rt->dst.output = dst_discard_out;
 			rt->dst.input = dst_discard;
 			break;
 		case RTN_PROHIBIT:
@@ -2446,7 +2446,7 @@ static int ip6_pkt_discard(struct sk_buff *skb)
 	return ip6_pkt_drop(skb, ICMPV6_NOROUTE, IPSTATS_MIB_INNOROUTES);
 }
 
-static int ip6_pkt_discard_out(struct sock *sk, struct sk_buff *skb)
+static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	skb->dev = skb_dst(skb)->dev;
 	return ip6_pkt_drop(skb, ICMPV6_NOROUTE, IPSTATS_MIB_OUTNOROUTES);
@@ -2457,7 +2457,7 @@ static int ip6_pkt_prohibit(struct sk_buff *skb)
 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_INNOROUTES);
 }
 
-static int ip6_pkt_prohibit_out(struct sock *sk, struct sk_buff *skb)
+static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	skb->dev = skb_dst(skb)->dev;
 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
index c9a5bd5fea9c..9db067a11b52 100644
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -173,10 +173,8 @@ static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 	return x->outer_mode->afinfo->output_finish(sk, skb);
 }
 
-int xfrm6_output(struct sock *sk, struct sk_buff *skb)
+int xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	struct net *net = dev_net(skb_dst(skb)->dev);
-
 	return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING,
 			    net, sk, skb,  NULL, skb_dst(skb)->dev,
 			    __xfrm6_output,
diff --git a/net/mpls/mpls_iptunnel.c b/net/mpls/mpls_iptunnel.c
index 21e70bc9af98..67591aef9cae 100644
--- a/net/mpls/mpls_iptunnel.c
+++ b/net/mpls/mpls_iptunnel.c
@@ -37,7 +37,7 @@ static unsigned int mpls_encap_size(struct mpls_iptunnel_encap *en)
 	return en->labels * sizeof(struct mpls_shim_hdr);
 }
 
-int mpls_output(struct sock *sk, struct sk_buff *skb)
+int mpls_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct mpls_iptunnel_encap *tun_encap_info;
 	struct mpls_shim_hdr *hdr;
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index f4f2d987f8f0..09bfcbac63bb 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1957,7 +1957,7 @@ purge_queue:
 	xfrm_pol_put(pol);
 }
 
-static int xdst_queue_output(struct sock *sk, struct sk_buff *skb)
+static int xdst_queue_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	unsigned long sched_next;
 	struct dst_entry *dst = skb_dst(skb);
-- 
2.2.1


WARNING: multiple messages have this Message-ID (diff)
From: "Eric W. Biederman" <ebiederm@xmission.com>
To: David Miller <davem@davemloft.net>
Cc: netfilter-devel@vger.kernel.org, netdev@vger.kernel.org,
	Nicolas Dichtel <nicolas.dichtel@6wind.com>,
	lvs-devel@vger.kernel.org
Subject: [PATCH net-next 16/16] dst: Pass net into dst->output
Date: Wed,  7 Oct 2015 16:48:47 -0500	[thread overview]
Message-ID: <1444254527-17833-16-git-send-email-ebiederm@xmission.com> (raw)
In-Reply-To: <87bnca4aie.fsf_-_@x220.int.ebiederm.org>

The network namespace is already passed into dst_output pass it into
dst->output lwt->output and friends.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
---
 drivers/net/vrf.c        |  3 +--
 include/net/dst.h        |  8 ++++----
 include/net/ip.h         |  4 ++--
 include/net/ipv6.h       |  2 +-
 include/net/lwtunnel.h   |  8 ++++----
 include/net/xfrm.h       |  6 +++---
 net/core/dst.c           | 14 +++++++-------
 net/core/lwtunnel.c      |  4 ++--
 net/decnet/dn_route.c    |  6 +++---
 net/ipv4/ip_output.c     |  6 ++----
 net/ipv4/route.c         |  4 ++--
 net/ipv4/xfrm4_output.c  |  4 +---
 net/ipv6/ila.c           |  4 ++--
 net/ipv6/ip6_output.c    |  3 +--
 net/ipv6/route.c         | 14 +++++++-------
 net/ipv6/xfrm6_output.c  |  4 +---
 net/mpls/mpls_iptunnel.c |  2 +-
 net/xfrm/xfrm_policy.c   |  2 +-
 18 files changed, 45 insertions(+), 53 deletions(-)

diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index 21bb7deb6d58..191579aeab16 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -312,10 +312,9 @@ err:
 	return ret;
 }
 
-static int vrf_output(struct sock *sk, struct sk_buff *skb)
+static int vrf_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
-	struct net *net = dev_net(dev);
 
 	IP_UPD_PO_STATS(net, IPSTATS_MIB_OUT, skb->len);
 
diff --git a/include/net/dst.h b/include/net/dst.h
index fdd01fed1a7b..1279f9b09791 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -45,7 +45,7 @@ struct dst_entry {
 	void			*__pad1;
 #endif
 	int			(*input)(struct sk_buff *);
-	int			(*output)(struct sock *sk, struct sk_buff *skb);
+	int			(*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 
 	unsigned short		flags;
 #define DST_HOST		0x0001
@@ -365,10 +365,10 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev,
 	__skb_tunnel_rx(skb, dev, net);
 }
 
-int dst_discard_sk(struct sock *sk, struct sk_buff *skb);
+int dst_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static inline int dst_discard(struct sk_buff *skb)
 {
-	return dst_discard_sk(skb->sk, skb);
+	return dst_discard_out(&init_net, skb->sk, skb);
 }
 void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref,
 		int initial_obsolete, unsigned short flags);
@@ -456,7 +456,7 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout)
 /* Output packet to network from transport.  */
 static inline int dst_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	return skb_dst(skb)->output(sk, skb);
+	return skb_dst(skb)->output(net, sk, skb);
 }
 
 /* Input packet from network to transport.  */
diff --git a/include/net/ip.h b/include/net/ip.h
index 7febbab784cd..3c904a28d5e5 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -107,8 +107,8 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
 	   struct net_device *orig_dev);
 int ip_local_deliver(struct sk_buff *skb);
 int ip_mr_input(struct sk_buff *skb);
-int ip_output(struct sock *sk, struct sk_buff *skb);
-int ip_mc_output(struct sock *sk, struct sk_buff *skb);
+int ip_output(struct net *net, struct sock *sk, struct sk_buff *skb);
+int ip_mc_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int ip_do_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
 		   int (*output)(struct net *, struct sock *, struct sk_buff *));
 void ip_send_check(struct iphdr *ip);
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index fce8120c2be3..e1a10b0ac0b0 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -860,7 +860,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net,
  *	skb processing functions
  */
 
-int ip6_output(struct sock *sk, struct sk_buff *skb);
+int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int ip6_forward(struct sk_buff *skb);
 int ip6_input(struct sk_buff *skb);
 int ip6_mc_input(struct sk_buff *skb);
diff --git a/include/net/lwtunnel.h b/include/net/lwtunnel.h
index fce0e35e74d0..66350ce3e955 100644
--- a/include/net/lwtunnel.h
+++ b/include/net/lwtunnel.h
@@ -18,7 +18,7 @@ struct lwtunnel_state {
 	__u16		type;
 	__u16		flags;
 	atomic_t	refcnt;
-	int		(*orig_output)(struct sock *sk, struct sk_buff *skb);
+	int		(*orig_output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int		(*orig_input)(struct sk_buff *);
 	int             len;
 	__u8            data[0];
@@ -28,7 +28,7 @@ struct lwtunnel_encap_ops {
 	int (*build_state)(struct net_device *dev, struct nlattr *encap,
 			   unsigned int family, const void *cfg,
 			   struct lwtunnel_state **ts);
-	int (*output)(struct sock *sk, struct sk_buff *skb);
+	int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int (*input)(struct sk_buff *skb);
 	int (*fill_encap)(struct sk_buff *skb,
 			  struct lwtunnel_state *lwtstate);
@@ -88,7 +88,7 @@ int lwtunnel_fill_encap(struct sk_buff *skb,
 int lwtunnel_get_encap_size(struct lwtunnel_state *lwtstate);
 struct lwtunnel_state *lwtunnel_state_alloc(int hdr_len);
 int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b);
-int lwtunnel_output(struct sock *sk, struct sk_buff *skb);
+int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int lwtunnel_input(struct sk_buff *skb);
 
 #else
@@ -160,7 +160,7 @@ static inline int lwtunnel_cmp_encap(struct lwtunnel_state *a,
 	return 0;
 }
 
-static inline int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
+static inline int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	return -EOPNOTSUPP;
 }
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index fd176106909a..4a9c21f9b4ea 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -333,7 +333,7 @@ struct xfrm_state_afinfo {
 						const xfrm_address_t *saddr);
 	int			(*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n);
 	int			(*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n);
-	int			(*output)(struct sock *sk, struct sk_buff *skb);
+	int			(*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int			(*output_finish)(struct sock *sk, struct sk_buff *skb);
 	int			(*extract_input)(struct xfrm_state *x,
 						 struct sk_buff *skb);
@@ -1527,7 +1527,7 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
 
 int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb);
 int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-int xfrm4_output(struct sock *sk, struct sk_buff *skb);
+int xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int xfrm4_output_finish(struct sock *sk, struct sk_buff *skb);
 int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err);
 int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol);
@@ -1552,7 +1552,7 @@ __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr);
 __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr);
 int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb);
 int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-int xfrm6_output(struct sock *sk, struct sk_buff *skb);
+int xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb);
 int xfrm6_output_finish(struct sock *sk, struct sk_buff *skb);
 int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb,
 			  u8 **prevhdr);
diff --git a/net/core/dst.c b/net/core/dst.c
index 0771c8cb9307..2a1818065e12 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -144,12 +144,12 @@ loop:
 	mutex_unlock(&dst_gc_mutex);
 }
 
-int dst_discard_sk(struct sock *sk, struct sk_buff *skb)
+int dst_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	kfree_skb(skb);
 	return 0;
 }
-EXPORT_SYMBOL(dst_discard_sk);
+EXPORT_SYMBOL(dst_discard_out);
 
 const u32 dst_default_metrics[RTAX_MAX + 1] = {
 	/* This initializer is needed to force linker to place this variable
@@ -177,7 +177,7 @@ void dst_init(struct dst_entry *dst, struct dst_ops *ops,
 	dst->xfrm = NULL;
 #endif
 	dst->input = dst_discard;
-	dst->output = dst_discard_sk;
+	dst->output = dst_discard_out;
 	dst->error = 0;
 	dst->obsolete = initial_obsolete;
 	dst->header_len = 0;
@@ -224,7 +224,7 @@ static void ___dst_free(struct dst_entry *dst)
 	 */
 	if (dst->dev == NULL || !(dst->dev->flags&IFF_UP)) {
 		dst->input = dst_discard;
-		dst->output = dst_discard_sk;
+		dst->output = dst_discard_out;
 	}
 	dst->obsolete = DST_OBSOLETE_DEAD;
 }
@@ -352,7 +352,7 @@ static struct dst_ops md_dst_ops = {
 	.family =		AF_UNSPEC,
 };
 
-static int dst_md_discard_sk(struct sock *sk, struct sk_buff *skb)
+static int dst_md_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	WARN_ONCE(1, "Attempting to call output on metadata dst\n");
 	kfree_skb(skb);
@@ -375,7 +375,7 @@ static void __metadata_dst_init(struct metadata_dst *md_dst, u8 optslen)
 		 DST_METADATA | DST_NOCACHE | DST_NOCOUNT);
 
 	dst->input = dst_md_discard;
-	dst->output = dst_md_discard_sk;
+	dst->output = dst_md_discard_out;
 
 	memset(dst + 1, 0, sizeof(*md_dst) + optslen - sizeof(*dst));
 }
@@ -430,7 +430,7 @@ static void dst_ifdown(struct dst_entry *dst, struct net_device *dev,
 
 	if (!unregister) {
 		dst->input = dst_discard;
-		dst->output = dst_discard_sk;
+		dst->output = dst_discard_out;
 	} else {
 		dst->dev = dev_net(dst->dev)->loopback_dev;
 		dev_hold(dst->dev);
diff --git a/net/core/lwtunnel.c b/net/core/lwtunnel.c
index dfb1a9ca0835..299cfc24d888 100644
--- a/net/core/lwtunnel.c
+++ b/net/core/lwtunnel.c
@@ -180,7 +180,7 @@ int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b)
 }
 EXPORT_SYMBOL(lwtunnel_cmp_encap);
 
-int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
+int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 	const struct lwtunnel_encap_ops *ops;
@@ -199,7 +199,7 @@ int lwtunnel_output(struct sock *sk, struct sk_buff *skb)
 	rcu_read_lock();
 	ops = rcu_dereference(lwtun_encaps[lwtstate->type]);
 	if (likely(ops && ops->output))
-		ret = ops->output(sk, skb);
+		ret = ops->output(net, sk, skb);
 	rcu_read_unlock();
 
 	if (ret == -EOPNOTSUPP)
diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c
index e930321e2c1d..27fce283117b 100644
--- a/net/decnet/dn_route.c
+++ b/net/decnet/dn_route.c
@@ -744,7 +744,7 @@ out:
 	return NET_RX_DROP;
 }
 
-static int dn_output(struct sock *sk, struct sk_buff *skb)
+static int dn_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 	struct dn_route *rt = (struct dn_route *)dst;
@@ -832,7 +832,7 @@ drop:
  * Used to catch bugs. This should never normally get
  * called.
  */
-static int dn_rt_bug_sk(struct sock *sk, struct sk_buff *skb)
+static int dn_rt_bug_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dn_skb_cb *cb = DN_SKB_CB(skb);
 
@@ -1469,7 +1469,7 @@ make_route:
 
 	rt->n = neigh;
 	rt->dst.lastuse = jiffies;
-	rt->dst.output = dn_rt_bug_sk;
+	rt->dst.output = dn_rt_bug_out;
 	switch (res.type) {
 	case RTN_UNICAST:
 		rt->dst.input = dn_forward;
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 9fe100a41e5d..67404e1fe7d4 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -284,11 +284,10 @@ static int ip_finish_output(struct net *net, struct sock *sk, struct sk_buff *sk
 	return ip_finish_output2(net, sk, skb);
 }
 
-int ip_mc_output(struct sock *sk, struct sk_buff *skb)
+int ip_mc_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct rtable *rt = skb_rtable(skb);
 	struct net_device *dev = rt->dst.dev;
-	struct net *net = dev_net(dev);
 
 	/*
 	 *	If the indicated interface is up and running, send the packet.
@@ -347,10 +346,9 @@ int ip_mc_output(struct sock *sk, struct sk_buff *skb)
 			    !(IPCB(skb)->flags & IPSKB_REROUTED));
 }
 
-int ip_output(struct sock *sk, struct sk_buff *skb)
+int ip_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
-	struct net *net = dev_net(dev);
 
 	IP_UPD_PO_STATS(net, IPSTATS_MIB_OUT, skb->len);
 
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index bf1486bd7e81..4be5ff08f98d 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1152,7 +1152,7 @@ static void ipv4_link_failure(struct sk_buff *skb)
 		dst_set_expires(&rt->dst, 0);
 }
 
-static int ip_rt_bug(struct sock *sk, struct sk_buff *skb)
+static int ip_rt_bug(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	pr_debug("%s: %pI4 -> %pI4, %s\n",
 		 __func__, &ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr,
@@ -2303,7 +2303,7 @@ struct dst_entry *ipv4_blackhole_route(struct net *net, struct dst_entry *dst_or
 
 		new->__use = 1;
 		new->input = dst_discard;
-		new->output = dst_discard_sk;
+		new->output = dst_discard_out;
 
 		new->dev = ort->dst.dev;
 		if (new->dev)
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c
index 17db61f4b439..9f298d0dc9a1 100644
--- a/net/ipv4/xfrm4_output.c
+++ b/net/ipv4/xfrm4_output.c
@@ -94,10 +94,8 @@ static int __xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 	return x->outer_mode->afinfo->output_finish(sk, skb);
 }
 
-int xfrm4_output(struct sock *sk, struct sk_buff *skb)
+int xfrm4_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	struct net *net = dev_net(skb_dst(skb)->dev);
-
 	return NF_HOOK_COND(NFPROTO_IPV4, NF_INET_POST_ROUTING,
 			    net, sk, skb, NULL, skb_dst(skb)->dev,
 			    __xfrm4_output,
diff --git a/net/ipv6/ila.c b/net/ipv6/ila.c
index 678d2df4b8d9..1a6852e1ac69 100644
--- a/net/ipv6/ila.c
+++ b/net/ipv6/ila.c
@@ -91,7 +91,7 @@ static void update_ipv6_locator(struct sk_buff *skb, struct ila_params *p)
 	*(__be64 *)&ip6h->daddr = p->locator;
 }
 
-static int ila_output(struct sock *sk, struct sk_buff *skb)
+static int ila_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct dst_entry *dst = skb_dst(skb);
 
@@ -100,7 +100,7 @@ static int ila_output(struct sock *sk, struct sk_buff *skb)
 
 	update_ipv6_locator(skb, ila_params_lwtunnel(dst->lwtstate));
 
-	return dst->lwtstate->orig_output(sk, skb);
+	return dst->lwtstate->orig_output(net, sk, skb);
 
 drop:
 	kfree_skb(skb);
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 98510fac94e9..32583b507c2e 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -130,11 +130,10 @@ static int ip6_finish_output(struct net *net, struct sock *sk, struct sk_buff *s
 		return ip6_finish_output2(net, sk, skb);
 }
 
-int ip6_output(struct sock *sk, struct sk_buff *skb)
+int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct net_device *dev = skb_dst(skb)->dev;
 	struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
-	struct net *net = dev_net(dev);
 
 	if (unlikely(idev->cnf.disable_ipv6)) {
 		IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index d3d946773a3e..4320ddcac33f 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -86,9 +86,9 @@ static void		ip6_dst_ifdown(struct dst_entry *,
 static int		 ip6_dst_gc(struct dst_ops *ops);
 
 static int		ip6_pkt_discard(struct sk_buff *skb);
-static int		ip6_pkt_discard_out(struct sock *sk, struct sk_buff *skb);
+static int		ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static int		ip6_pkt_prohibit(struct sk_buff *skb);
-static int		ip6_pkt_prohibit_out(struct sock *sk, struct sk_buff *skb);
+static int		ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
 static void		ip6_link_failure(struct sk_buff *skb);
 static void		ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
 					   struct sk_buff *skb, u32 mtu);
@@ -308,7 +308,7 @@ static const struct rt6_info ip6_blk_hole_entry_template = {
 		.obsolete	= DST_OBSOLETE_FORCE_CHK,
 		.error		= -EINVAL,
 		.input		= dst_discard,
-		.output		= dst_discard_sk,
+		.output		= dst_discard_out,
 	},
 	.rt6i_flags	= (RTF_REJECT | RTF_NONEXTHOP),
 	.rt6i_protocol  = RTPROT_KERNEL,
@@ -1195,7 +1195,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, struct dst_entry *dst_ori
 
 		new->__use = 1;
 		new->input = dst_discard;
-		new->output = dst_discard_sk;
+		new->output = dst_discard_out;
 
 		if (dst_metrics_read_only(&ort->dst))
 			new->_metrics = ort->dst._metrics;
@@ -1853,7 +1853,7 @@ int ip6_route_info_create(struct fib6_config *cfg, struct rt6_info **rt_ret)
 		switch (cfg->fc_type) {
 		case RTN_BLACKHOLE:
 			rt->dst.error = -EINVAL;
-			rt->dst.output = dst_discard_sk;
+			rt->dst.output = dst_discard_out;
 			rt->dst.input = dst_discard;
 			break;
 		case RTN_PROHIBIT:
@@ -2446,7 +2446,7 @@ static int ip6_pkt_discard(struct sk_buff *skb)
 	return ip6_pkt_drop(skb, ICMPV6_NOROUTE, IPSTATS_MIB_INNOROUTES);
 }
 
-static int ip6_pkt_discard_out(struct sock *sk, struct sk_buff *skb)
+static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	skb->dev = skb_dst(skb)->dev;
 	return ip6_pkt_drop(skb, ICMPV6_NOROUTE, IPSTATS_MIB_OUTNOROUTES);
@@ -2457,7 +2457,7 @@ static int ip6_pkt_prohibit(struct sk_buff *skb)
 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_INNOROUTES);
 }
 
-static int ip6_pkt_prohibit_out(struct sock *sk, struct sk_buff *skb)
+static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	skb->dev = skb_dst(skb)->dev;
 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
index c9a5bd5fea9c..9db067a11b52 100644
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -173,10 +173,8 @@ static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 	return x->outer_mode->afinfo->output_finish(sk, skb);
 }
 
-int xfrm6_output(struct sock *sk, struct sk_buff *skb)
+int xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	struct net *net = dev_net(skb_dst(skb)->dev);
-
 	return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING,
 			    net, sk, skb,  NULL, skb_dst(skb)->dev,
 			    __xfrm6_output,
diff --git a/net/mpls/mpls_iptunnel.c b/net/mpls/mpls_iptunnel.c
index 21e70bc9af98..67591aef9cae 100644
--- a/net/mpls/mpls_iptunnel.c
+++ b/net/mpls/mpls_iptunnel.c
@@ -37,7 +37,7 @@ static unsigned int mpls_encap_size(struct mpls_iptunnel_encap *en)
 	return en->labels * sizeof(struct mpls_shim_hdr);
 }
 
-int mpls_output(struct sock *sk, struct sk_buff *skb)
+int mpls_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	struct mpls_iptunnel_encap *tun_encap_info;
 	struct mpls_shim_hdr *hdr;
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index f4f2d987f8f0..09bfcbac63bb 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1957,7 +1957,7 @@ purge_queue:
 	xfrm_pol_put(pol);
 }
 
-static int xdst_queue_output(struct sock *sk, struct sk_buff *skb)
+static int xdst_queue_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
 	unsigned long sched_next;
 	struct dst_entry *dst = skb_dst(skb);
-- 
2.2.1


  parent reply	other threads:[~2015-10-07 21:48 UTC|newest]

Thread overview: 540+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-16  0:59 [PATCH next 0/30] Passing net through the netfilter hooks Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 01/30] netfilter: Remove !CONFIG_NETFITLER definition of nf_hook_thresh Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 02/30] netfilter: Store net in nf_hook_state Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 03/30] netfilter: Pass net to nf_hook_thresh Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 04/30] xfrm: Remove unused afinfo method init_dst Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 05/30] net: Merge dst_output and dst_output_sk Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 06/30] ipv4: Compute net once in ip_forward Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 07/30] ipv4: Compute net once in ip_forward_finish Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 08/30] ipv4: Compute net once in ip_rcv Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 09/30] ipv4: Remember the net in ip_output and ip_mc_output Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 10/30] ipv4: Don't recompute net in ipmr_queue_xmit Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 11/30] ipv4: Only compute net once in ip_do_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 12/30] ipv4: Explicitly compute net in ip_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 13/30] ipv4: Only compute net once in ip_finish_output2 Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 14/30] ipv4: Only compute net once in ip_rcv_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 15/30] ipv4: Only compute net once in ipmr_forward_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 16/30] ipv6: Only compute net once in ip6mr_forward2_finish Eric W. Biederman
2015-09-17 16:00   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 17/30] arp: Introduce arp_xmit_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 18/30] bridge: Introduce br_send_bpdu_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 19/30] net: Remove dev_queue_xmit_sk Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 20/30] ipv6: Don't recompute net in ip6_rcv Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 21/30] ipv6: Only compute net once in ip6_finish_output2 Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 22/30] ipv6: Cache net in ip6_output Eric W. Biederman
2015-09-17 16:06   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 23/30] ipv6: Compute net once in raw6_send_hdrinc Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 24/30] bridge: Pass net into br_nf_ip_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 25/30] bridge: Pass net into br_nf_push_frag_xmit Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 26/30] bridge: Cache net in br_nf_pre_routing_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 27/30] bridge: Add br_netif_receive_skb remove netif_receive_skb_sk Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 28/30] netfilter: Pass struct net into the netfilter hooks Eric W. Biederman
2015-09-17 16:25   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 29/30] netfilter: Use nf_hook_state.net Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 30/30] netfilter: Pass net into okfn Eric W. Biederman
2015-09-17 16:30 ` [PATCH next 0/30] Passing net through the netfilter hooks Nicolas Dichtel
2015-09-17 22:24   ` Eric W. Biederman
2015-09-18  7:08     ` Nicolas Dichtel
2015-09-17 22:21 ` [PATCH next 31/30] netfilter: Add blank lines in callers of " Eric W. Biederman
2015-09-18  0:19 ` [PATCH next 0/30] Passing net through the " David Miller
2015-09-18  5:38   ` David Miller
2015-09-18  8:56   ` Pablo Neira Ayuso
2015-09-18 15:06 ` [PATCH next 0/14] netfilter: Stop guessing net Eric W. Biederman
2015-09-18 16:01   ` Nicolas Dichtel
2015-09-18 16:13     ` Eric W. Biederman
2015-09-18 16:28       ` Nicolas Dichtel
2015-09-18 16:05   ` [PATCH next 01/14] ebtables: Simplify the arguments to ebt_do_table Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 02/14] inet netfilter: Remove hook from ip6t_do_table, arp_do_table, ipt_do_table Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 03/14] inet netfilter: Prefer state->hook to ops->hooknum Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 04/14] nftables: kill nft_pktinfo.ops Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 05/14] x_tables: Pass struct net in xt_action_param Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 06/14] x_tables: Use par->net instead of computing from the passed net devices Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 07/14] nftables: Pass struct net in nft_pktinfo Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 08/14] nftables: Use pkt->net instead of computing net from the passed net_devices Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 09/14] net: Pass net to nf_dup_ipv4 and nf_dup_ipv6 Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 10/14] nf_conntrack: Add a struct net parameter to l4_pkt_to_tuple Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 11/14] ipvs: Read hooknum from state rather than ops->hooknum Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 12/14] netfilter: Pass priv instead of nf_hook_ops to netfilter hooks Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 13/14] netfilter: Pass net into nf_xfrm_me_harder Eric W. Biederman
2015-09-18 16:06   ` [PATCH next 14/14] netfilter: Use nf_ct_net instead of dev_net(out) in nf_nat_masquerade_ipv6 Eric W. Biederman
2015-09-18 16:32   ` [PATCH next 0/14] netfilter: Stop guessing net Nicolas Dichtel
2015-09-18 18:15     ` Eric W. Biederman
2015-09-18 19:28   ` [PATCH next 0/15] netfilter: Stop guessing net (take 2) Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 01/15] ebtables: Simplify the arguments to ebt_do_table Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 02/15] inet netfilter: Remove hook from ip6t_do_table, arp_do_table, ipt_do_table Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 03/15] inet netfilter: Prefer state->hook to ops->hooknum Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 04/15] nftables: kill nft_pktinfo.ops Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 05/15] x_tables: Pass struct net in xt_action_param Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 06/15] x_tables: Use par->net instead of computing from the passed net devices Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 07/15] nftables: Pass struct net in nft_pktinfo Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 08/15] nftables: Use pkt->net instead of computing net from the passed net_devices Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 09/15] net: Pass net to nf_dup_ipv4 and nf_dup_ipv6 Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 10/15] act_connmark: Remember the struct net instead of guessing it Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 11/15] nf_conntrack: Add a struct net parameter to l4_pkt_to_tuple Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 12/15] ipvs: Read hooknum from state rather than ops->hooknum Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 13/15] netfilter: Pass priv instead of nf_hook_ops to netfilter hooks Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 14/15] netfilter: Pass net into nf_xfrm_me_harder Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 15/15] netfilter: Use nf_ct_net instead of dev_net(out) in nf_nat_masquerade_ipv6 Eric W. Biederman
2015-09-18 20:21     ` [PATCH next 0/15] netfilter: Stop guessing net (take 2) Pablo Neira Ayuso
2015-09-20  6:21     ` [PATCH next 00/84] ipvs: Stop guessing the network namespace Eric W. Biederman
2015-09-20  6:21       ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 01/84] ipvs: Hoist computation of ipvs earlier in sctp_conn_schedule Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 02/84] ipvs: Don't use current in proc_do_defense_mode Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 03/84] ipvs: Use state->net in the ipvs forward functions Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 04/84] ipvs: Store ipvs not net in struct ip_vs_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 05/84] ipvs: Store ipvs not net in struct ip_vs_conn_param Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 06/84] ipvs: Pass ipvs not net to ip_vs_fill_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 07/84] ipvs: Store ipvs not net in struct ip_vs_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 08/84] ipvs: Pass ipvs not net to ip_vs_svc_fwm_hashkey Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 09/84] ipvs: Pass ipvs not net to __ip_vs_svc_fwm_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 10/84] ipvs: Pass ipvs not net to ip_vs_svc_hashkey Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 11/84] ipvs: Pass ipvs not net to __ip_vs_service_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 12/84] ipvs: Pass ipvs not net to ipvs_service_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 13/84] ipvs: Pass ipvs not net to ip_vs_has_real_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 14/84] ipvs: Pass ipvs not net to ip_vs_find_dest Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 15/84] ipvs: Pass ipvs not net to ip_vs_trash_cleanup Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 16/84] ipvs: Pass ipvs not net to __ip_vs_del_dest Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 17/84] ipvs: Pass ipvs not net to ip_vs_dest_trash_expire Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 18/84] ipvs: Cache ipvs in ip_vs_genl_set_cmd Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 19/84] ipvs: Pass ipvs not net to ip_vs_add_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 20/84] ipvs: Pass ipvs not net to ip_vs_flush Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 21/84] ipvs: Pass ipvs not net to ip_vs_service_net_cleanup Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 22/84] ipvs: Pass ipvs not net to ip_vs_zero_all Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 23/84] ipvs: Cache ipvs in ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 24/84] ipvs: Pass ipvs not net to ip_vs_proto_data_get Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 25/84] ipvs: Pass ipvs not net to ip_vs_set_timeout Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 26/84] ipvs: Pass ipvs not net to __ip_vs_get_servie_entries Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 27/84] ipvs: Pass ipvs not net to __ip_vs_get_dest_entries Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 28/84] ipvs: Pass ipvs not net to __ip_vs_get_timeouts Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 29/84] ipvs: Pass ipvs not net to ip_vs_genl_parse_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 30/84] ipvs: Pass ipvs not net to ip_vs_genl_find_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 31/84] ipvs: Pass ipvs not net to ip_vs_genl_new_daemon Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 32/84] ipvs: Pass ipvs not net to ip_vs_genl_del_daemon Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 33/84] ipvs: Pass ipvs not net to start_sync_thread Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 34/84] ipvs: Pass ipvs not net to stop_sync_thread Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 35/84] ipvs: Pass ipvs not net to make_send_sock Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 36/84] ipvs: Pass ipvs not net to make_receive_sock Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 37/84] ipvs: Store ipvs not net in struct ip_vs_sync_thread_data Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 38/84] ipvs: Pass ipvs not net to ip_vs_process_message Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 39/84] ipvs: Pass ipvs not net to ip_vs_sync_conn_v0 Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 40/84] ipvs: Pass ipvs not net to ip_vs_sync_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 41/84] ipvs: Pass ipvs not net to ip_vs_proc_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 42/84] ipvs: Pass ipvs not net to ip_vs_proc_sync_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 43/84] ipvs: Pass ipvs not net to ip_vs_sync_net_init Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 44/84] ipvs: Pass ipvs not net to ip_vs_sync_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 45/84] ipvs: Pass ipvs not net to ip_vs_genl_set_config Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 46/84] ipvs: Pass ipvs not net to ip_vs_start_estimator aned ip_vs_stop_estimator Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 47/84] ipvs: Pass ipvs not net to ip_vs_random_drop_entry Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 48/84] ipvs: Pass ipvs not net to ip_vs_control_net_(init|cleanup)_sysctl Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 49/84] ipvs: Pass ipvs not net into ip_vs_control_net_(init|cleanup) Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 50/84] ipvs: Pass ipvs not net to estimation_timer Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 51/84] ipvs: Pass ipvs not net to ip_vs_estimator_net_init and ip_vs_estimator_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 52/84] ipvs: Pass ipvs not net into register_app and unregister_app Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 53/84] ipvs: Pass ipvs not net into ip_vs_app_inc_new Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 54/84] ipvs: Pass ipvs not net to register_ip_vs_app_inc Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 55/84] ipvs: Pass ipvs not net to register_ip_vs_app and unregister_ip_vs_app Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 56/84] ipvs: Pass ipvs not net into ip_vs_app_inc_release Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 57/84] ipvs: Pass ipvs not net into ip_vs_app_net_init and ip_vs_app_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 58/84] ipvs: Pass ipvs not net into [un]register_ip_vs_proto_netns Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 59/84] ipvs: Pass ipvs not net into init_netns and exit_netns Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 60/84] ipvs: Pass ipvs into ip_vs_conn_fill_param_proto Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 61/84] ipvs: Pass ipvs into .conn_in_get and ip_vs_conn_in_get_proto Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 62/84] ipvs: Pass ipvs into conn_out_get Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 63/84] ipvs: Pass ipvs not net to ip_vs_conn_hashkey Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 64/84] ipvs: Pass ipvs not net into ip_vs_conn_net_flush Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 65/84] ipvs: Pass ipvs not net into ip_vs_conn_net_init and ip_vs_conn_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 66/84] ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 67/84] ipvs: Better derivation of ipvs in ip_vs_tunnel_xmit Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 68/84] ipvs: Pass ipvs into __ip_vs_get_out_rt Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 69/84] ipvs: Pass ipvs into __ip_vs_get_out_rt_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 70/84] ipvs: Pass ipvs into ensure_mtu_is adequate Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 71/84] ipvs: Better derivation of ipvs in ip_vs_in_stats and ip_vs_out_stats Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 72/84] ipvs: Wrap sysctl_cache_bypass and remove ifdefs in ip_vs_leave Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 73/84] ipvs: Simplify ipvs and net access " Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 74/84] ipvs: Pass ipvs not net into sysctl_nat_icmp_send Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 75/84] ipvs: Pass ipvs into ip_vs_out Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 76/84] ipvs: Pass ipvs into ip_vs_in Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 77/84] ipvs: Pass ipvs into ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 78/84] ipvs: Pass ipvs into ip_vs_out_icmp and ip_vs_out_icmp_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 79/84] ipvs: Pass ipvs through ip_vs_route_me_harder into sysctl_snat_reroute Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 80/84] ipvs: Remove net argument from ip_vs_tcp_conn_listen Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 81/84] ipvs: Pass ipvs not net to ip_vs_protocol_net_(init|cleanup) Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 82/84] ipvs: Remove skb_net Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 83/84] ipvs: Remove skb_sknet Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 84/84] ipvs: Pass ipvs into ip_vs_gather_frags Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20 14:38       ` [PATCH next 00/84] ipvs: Stop guessing the network namespace Julian Anastasov
2015-09-20 16:41         ` Eric W. Biederman
2015-09-21 18:01       ` [PATCH next 00/84] ipvs: Stop guessing the network namespace (take 2) Eric W. Biederman
2015-09-21 18:01         ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 01/84] ipvs: Hoist computation of ipvs earlier in sctp_conn_schedule Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 02/84] ipvs: Don't use current in proc_do_defense_mode Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-23  1:06           ` Simon Horman
2015-09-23  1:53             ` Eric W. Biederman
2015-09-24  1:38               ` Simon Horman
2015-09-21 18:01         ` [PATCH next 03/84] ipvs: Use state->net in the ipvs forward functions Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 04/84] ipvs: Store ipvs not net in struct ip_vs_conn Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 05/84] ipvs: Store ipvs not net in struct ip_vs_conn_param Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 06/84] ipvs: Pass ipvs not net to ip_vs_fill_conn Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 07/84] ipvs: Store ipvs not net in struct ip_vs_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 08/84] ipvs: Pass ipvs not net to ip_vs_svc_fwm_hashkey Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 09/84] ipvs: Pass ipvs not net to __ip_vs_svc_fwm_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 10/84] ipvs: Pass ipvs not net to ip_vs_svc_hashkey Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 11/84] ipvs: Pass ipvs not net to __ip_vs_service_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 12/84] ipvs: Pass ipvs not net to ip_vs_service_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 13/84] ipvs: Pass ipvs not net to ip_vs_has_real_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 14/84] ipvs: Pass ipvs not net to ip_vs_find_dest Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 15/84] ipvs: Pass ipvs not net to ip_vs_trash_cleanup Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 16/84] ipvs: Pass ipvs not net to __ip_vs_del_dest Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 17/84] ipvs: Pass ipvs not net to ip_vs_dest_trash_expire Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 18/84] ipvs: Cache ipvs in ip_vs_genl_set_cmd Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 19/84] ipvs: Pass ipvs not net to ip_vs_add_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 20/84] ipvs: Pass ipvs not net to ip_vs_flush Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 21/84] ipvs: Pass ipvs not net to ip_vs_service_net_cleanup Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 22/84] ipvs: Pass ipvs not net to ip_vs_zero_all Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 23/84] ipvs: Cache ipvs in ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 24/84] ipvs: Pass ipvs not net to ip_vs_proto_data_get Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 25/84] ipvs: Pass ipvs not net to ip_vs_set_timeout Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 26/84] ipvs: Pass ipvs not net to __ip_vs_get_service_entries Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 27/84] ipvs: Pass ipvs not net to __ip_vs_get_dest_entries Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 28/84] ipvs: Pass ipvs not net to __ip_vs_get_timeouts Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 29/84] ipvs: Pass ipvs not net to ip_vs_genl_parse_service Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 30/84] ipvs: Pass ipvs not net to ip_vs_genl_find_service Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 31/84] ipvs: Pass ipvs not net to ip_vs_genl_new_daemon Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 32/84] ipvs: Pass ipvs not net to ip_vs_genl_del_daemon Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 33/84] ipvs: Pass ipvs not net to start_sync_thread Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 34/84] ipvs: Pass ipvs not net to stop_sync_thread Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 35/84] ipvs: Pass ipvs not net to make_send_sock Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 36/84] ipvs: Pass ipvs not net to make_receive_sock Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 37/84] ipvs: Store ipvs not net in struct ip_vs_sync_thread_data Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 38/84] ipvs: Pass ipvs not net to ip_vs_process_message Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 39/84] ipvs: Pass ipvs not net to ip_vs_sync_conn_v0 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 40/84] ipvs: Pass ipvs not net to ip_vs_sync_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 41/84] ipvs: Pass ipvs not net to ip_vs_proc_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 42/84] ipvs: Pass ipvs not net to ip_vs_proc_sync_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 43/84] ipvs: Pass ipvs not net to ip_vs_sync_net_init Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 44/84] ipvs: Pass ipvs not net to ip_vs_sync_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 45/84] ipvs: Pass ipvs not net to ip_vs_genl_set_config Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 46/84] ipvs: Pass ipvs not net to ip_vs_start_estimator aned ip_vs_stop_estimator Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 47/84] ipvs: Pass ipvs not net to ip_vs_random_drop_entry Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 48/84] ipvs: Pass ipvs not net to ip_vs_control_net_(init|cleanup)_sysctl Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 49/84] ipvs: Pass ipvs not net into ip_vs_control_net_(init|cleanup) Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 50/84] ipvs: Pass ipvs not net to estimation_timer Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 51/84] ipvs: Pass ipvs not net to ip_vs_estimator_net_init and ip_vs_estimator_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 52/84] ipvs: Pass ipvs not net into register_app and unregister_app Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 53/84] ipvs: Pass ipvs not net into ip_vs_app_inc_new Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 54/84] ipvs: Pass ipvs not net to register_ip_vs_app_inc Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 55/84] ipvs: Pass ipvs not net to register_ip_vs_app and unregister_ip_vs_app Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 56/84] ipvs: Pass ipvs not net into ip_vs_app_inc_release Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 57/84] ipvs: Pass ipvs not net into ip_vs_app_net_init and ip_vs_app_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 58/84] ipvs: Pass ipvs not net into [un]register_ip_vs_proto_netns Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 59/84] ipvs: Pass ipvs not net into init_netns and exit_netns Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 60/84] ipvs: Pass ipvs into ip_vs_conn_fill_param_proto Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 61/84] ipvs: Pass ipvs into .conn_in_get and ip_vs_conn_in_get_proto Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 62/84] ipvs: Pass ipvs into conn_out_get Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 63/84] ipvs: Pass ipvs not net to ip_vs_conn_hashkey Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 64/84] ipvs: Pass ipvs not net into ip_vs_conn_net_flush Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 65/84] ipvs: Pass ipvs not net into ip_vs_conn_net_init and ip_vs_conn_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 66/84] ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 67/84] ipvs: Better derivation of ipvs in ip_vs_tunnel_xmit Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 68/84] ipvs: Pass ipvs into __ip_vs_get_out_rt Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 69/84] ipvs: Pass ipvs into __ip_vs_get_out_rt_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 70/84] ipvs: Pass ipvs into ensure_mtu_is adequate Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 71/84] ipvs: Better derivation of ipvs in ip_vs_in_stats and ip_vs_out_stats Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 72/84] ipvs: Wrap sysctl_cache_bypass and remove ifdefs in ip_vs_leave Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 73/84] ipvs: Simplify ipvs and net access " Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 74/84] ipvs: Pass ipvs not net into sysctl_nat_icmp_send Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 75/84] ipvs: Pass ipvs into ip_vs_out Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 76/84] ipvs: Pass ipvs into ip_vs_in Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 77/84] ipvs: Pass ipvs into ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 78/84] ipvs: Pass ipvs into ip_vs_out_icmp and ip_vs_out_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 79/84] ipvs: Pass ipvs through ip_vs_route_me_harder into sysctl_snat_reroute Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 80/84] ipvs: Remove net argument from ip_vs_tcp_conn_listen Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 81/84] ipvs: Pass ipvs not net to ip_vs_protocol_net_(init|cleanup) Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 82/84] ipvs: Remove skb_net Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:03         ` [PATCH next 83/84] ipvs: Remove skb_sknet Eric W. Biederman
2015-09-21 18:03           ` Eric W. Biederman
2015-09-21 18:03         ` [PATCH next 84/84] ipvs: Pass ipvs into ip_vs_gather_frags Eric W. Biederman
2015-09-21 18:03           ` Eric W. Biederman
2015-09-22  7:22         ` [PATCH next 00/84] ipvs: Stop guessing the network namespace (take 2) Julian Anastasov
2015-09-22  8:50           ` Pablo Neira Ayuso
2015-09-23  0:17             ` Simon Horman
2015-09-23  9:16               ` Pablo Neira Ayuso
2015-09-25 20:01     ` [PATCH next 0/5] netfilter: Pass net into ip_route_me_harder Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 1/5] ipv4: Push struct net down into nf_send_reset Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 2/5] netfilter: Push struct net down into nf_afinfo.reroute Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 3/5] netfilter: ipt_SYNPROXY: Pass snet into synproxy_send_tcp Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 4/5] ipv4: Pass struct net into ip_route_me_harder Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 5/5] ipv6: Pass struct net into ip6_route_me_harder Eric W. Biederman
2015-09-28  7:29       ` [PATCH next 0/5] netfilter: Pass net into ip_route_me_harder Nicolas Dichtel
2015-09-29 18:32       ` Pablo Neira Ayuso
2015-09-30 21:24       ` [PATCH net-next 0/6] net: Pass net through ip fragmention Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 1/6] openvswitch: Pass net into ovs_vport_output Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-09-30 21:25         ` [PATCH net-next 2/6] openvswitch: Pass net into ovs_fragment Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-10-01 16:03             ` Eric W. Biederman
2015-10-01 22:14               ` Nicolas Dichtel
2015-09-30 21:25         ` [PATCH net-next 3/6] ipv4: Pass struct net through ip_fragment Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 4/6] ipv6: Pass struct net through ip6_fragment Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-10-01 16:44             ` [PATCH net-next 7/6] ipv6: Add missing newline to __xfrm6_output_finish Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 5/6] bridge: Remove br_nf_push_frag_xmit_sk Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 6/6] openvswitch: Remove ovs_vport_output_sk Eric W. Biederman
2015-10-01  8:33         ` [PATCH net-next 0/6] net: Pass net through ip fragmention Nicolas Dichtel
2015-10-05 10:40         ` David Miller
2015-10-06 18:50         ` [PATCH net-next 00/15] net: Pass net through the output path Eric W. Biederman
2015-10-06 18:50           ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 01/15] ipv4: Fix ip_local_out_sk by passing the sk into __ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 13:37             ` Sergei Shtylyov
2015-10-07 14:48             ` Nicolas Dichtel
2015-10-07 14:48               ` Nicolas Dichtel
2015-10-06 18:53           ` [PATCH net-next 02/15] xfrm: Only compute net once in xfrm_policy_queue_process Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 03/15] net: Pass net into dst_output and remove dst_output_okfn Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 04/15] dst: Pass a sk into .local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 05/15] ipv4: Merge __ip_local_out and __ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 06/15] ipv4: Merge ip_local_out and ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 14:48             ` Nicolas Dichtel
2015-10-07 14:48               ` Nicolas Dichtel
2015-10-07 20:39               ` Eric W. Biederman
2015-10-07 20:39                 ` Eric W. Biederman
2015-10-08  9:38                 ` Nicolas Dichtel
2015-10-06 18:53           ` [PATCH net-next 07/15] ipv6: Merge __ip6_local_out and __ip6_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 08/15] ipv6: Merge ip6_local_out and ip6_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 09/15] ipv4: Cache net in iptunnel_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 10/15] ipv4: Cache net in ip_build_and_send_pkt and ip_queue_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 21:40             ` Eric Dumazet
2015-10-07  3:26               ` Eric W. Biederman
2015-10-07  3:48                 ` Eric Dumazet
2015-10-06 18:53           ` [PATCH net-next 11/15] ppp: Cache net in pptp_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 12/15] ipvlan: Cache net in ipvlan_process_v4_outbound and ipvlan_process_v6_outbound Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07  1:19             ` Mahesh Bandewar
2015-10-07  1:24               ` Mahesh Bandewar
2015-10-06 18:53           ` [PATCH net-next 13/15] ipv4,ipv6: Pass net into __ip_local_out and __ip6_local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 14/15] ipv4,ipv6: Pass net into ip_local_out and ip6_local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 15/15] dst: Pass net into dst->output Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 21:46           ` [PATCH net-next 00/16] net: Pass net through the output path v2 Eric W. Biederman
2015-10-07 21:46             ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 01/16] ipv4: Fix ip_local_out_sk by passing the sk into __ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 02/16] ipv4: Fix ip_queue_xmit to pass sk into ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 03/16] xfrm: Only compute net once in xfrm_policy_queue_process Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 04/16] net: Pass net into dst_output and remove dst_output_okfn Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 05/16] dst: Pass a sk into .local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 06/16] ipv4: Merge __ip_local_out and __ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 07/16] ipv4: Merge ip_local_out and ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 08/16] ipv6: Merge __ip6_local_out and __ip6_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 09/16] ipv6: Merge ip6_local_out and ip6_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 10/16] ipv4: Cache net in iptunnel_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 11/16] ipv4: Cache net in ip_build_and_send_pkt and ip_queue_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 12/16] ppp: Cache net in pptp_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 13/16] ipvlan: Cache net in ipvlan_process_v4_outbound and ipvlan_process_v6_outbound Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 14/16] ipv4,ipv6: Pass net into __ip_local_out and __ip6_local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 15/16] ipv4,ipv6: Pass net into ip_local_out and ip6_local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` Eric W. Biederman [this message]
2015-10-07 21:48               ` [PATCH net-next 16/16] dst: Pass net into dst->output Eric W. Biederman
2015-10-08  9:40             ` [PATCH net-next 00/16] net: Pass net through the output path v2 Nicolas Dichtel
2015-10-08  9:40               ` Nicolas Dichtel
2015-10-08 11:27             ` David Miller
2015-10-09 18:42             ` [PATCH net-next 0/3] net: Pass net into defragmentation Eric W. Biederman
2015-10-12  7:26               ` Nicolas Dichtel
2015-10-13  2:44               ` David Miller
2015-10-09 18:44             ` [PATCH net-next 1/3] ipv4: Only compute net once in ip_call_ra_chain Eric W. Biederman
2015-10-09 18:44             ` [PATCH net-next 2/3] ipv4: Pass struct net into ip_defrag and ip_check_defrag Eric W. Biederman
2015-10-12 20:11               ` Pablo Neira Ayuso
2015-10-09 18:44             ` [PATCH net-next 3/3] ipv6: Pass struct net into nf_ct_frag6_gather Eric W. Biederman
2015-10-12 20:12               ` Pablo Neira Ayuso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444254527-17833-16-git-send-email-ebiederm@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=davem@davemloft.net \
    --cc=lvs-devel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=nicolas.dichtel@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.