Message ID | 231e48734bb95fab30fb6c879ab858120cfb88ff.1480522144.git.tgraf@suug.ch |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index d37fc6f..0c39b62 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -2154,8 +2154,10 @@ static struct rtable *__mkroute_output(const struct fib_result *res, } rt_set_nexthop(rth, fl4->daddr, res, fnhe, fi, type, 0); - if (lwtunnel_output_redirect(rth->dst.lwtstate)) + if (lwtunnel_output_redirect(rth->dst.lwtstate)) { + rth->dst.lwtstate->orig_output = rth->dst.output; rth->dst.output = lwtunnel_output; + } return rth; }
orig_output for IPv4 was only set for dsts which hit an input route. Set it consistently for locally generated traffic as well to allow lwt to continue the dst_output() path as configured by the nexthop. Fixes: 2536862311d ("lwt: Add support to redirect dst.input") Signed-off-by: Thomas Graf <tgraf@suug.ch> --- net/ipv4/route.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)