net: skb->rtable accessor
Define skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb Delete skb->rtable field Setting rtable is not allowed, just set dst instead as rtable is an alias. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
dfbf97f3ac
commit
511c3f92ad
@@ -1354,7 +1354,7 @@ static int ip_mr_forward(struct sk_buff *skb, struct mfc_cache *cache, int local
|
||||
if (net->ipv4.vif_table[vif].dev != skb->dev) {
|
||||
int true_vifi;
|
||||
|
||||
if (skb->rtable->fl.iif == 0) {
|
||||
if (skb_rtable(skb)->fl.iif == 0) {
|
||||
/* It is our own packet, looped back.
|
||||
Very complicated situation...
|
||||
|
||||
@@ -1430,7 +1430,7 @@ int ip_mr_input(struct sk_buff *skb)
|
||||
{
|
||||
struct mfc_cache *cache;
|
||||
struct net *net = dev_net(skb->dev);
|
||||
int local = skb->rtable->rt_flags&RTCF_LOCAL;
|
||||
int local = skb_rtable(skb)->rt_flags & RTCF_LOCAL;
|
||||
|
||||
/* Packet is looped back after forward, it should not be
|
||||
forwarded second time, but still can be delivered locally.
|
||||
@@ -1646,7 +1646,7 @@ int ipmr_get_route(struct net *net,
|
||||
{
|
||||
int err;
|
||||
struct mfc_cache *cache;
|
||||
struct rtable *rt = skb->rtable;
|
||||
struct rtable *rt = skb_rtable(skb);
|
||||
|
||||
read_lock(&mrt_lock);
|
||||
cache = ipmr_cache_find(net, rt->rt_src, rt->rt_dst);
|
||||
|
Reference in New Issue
Block a user