diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index ef548520452253dd5a39f6c24388b8fa1ddaa580..febde6c112bf4b5c653d2e1740f16b76ccdd2b76 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -746,6 +746,9 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt, u16 nlflags = NLM_F_EXCL; int err; + if (info->nlh && (info->nlh->nlmsg_flags & NLM_F_APPEND)) + nlflags |= NLM_F_APPEND; + ins = &fn->leaf; for (iter = fn->leaf; iter; iter = iter->dst.rt6_next) {