When adding a channel for INET failed at the device level (ioctl) the
code used to call rtrequest(RTM_DELETE, ...). This is a problem, because the function that just has called us (route_output) is not really happy with the route it just is creating beeing ripped out from under it. Unfortunately we also cannot return an error from ifa_rtrequest. Therefore mark the route just as RTF_REJECT.
This commit is contained in:
parent
07cf047d5a
commit
7e3d4432af
@ -162,8 +162,10 @@ atm_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info)
|
||||
rt->rt_flags &= ~RTF_LLINFO;
|
||||
}
|
||||
#endif
|
||||
rtrequest(RTM_DELETE, rt_key(rt), (struct sockaddr *)0,
|
||||
rt_mask(rt), 0, (struct rtentry **)0);
|
||||
/* mark as invalid. We cannot RTM_DELETE the route from
|
||||
* here, because the recursive call to rtrequest1 does
|
||||
* not really work. */
|
||||
rt->rt_flags |= RTF_REJECT;
|
||||
break;
|
||||
|
||||
case RTM_DELETE:
|
||||
|
Loading…
Reference in New Issue
Block a user