@@ -3169,21 +3169,14 @@ static int rt6_fill_node(struct net *net,
3169
3169
struct sk_buff * skb , struct rt6_info * rt ,
3170
3170
struct in6_addr * dst , struct in6_addr * src ,
3171
3171
int iif , int type , u32 portid , u32 seq ,
3172
- int prefix , unsigned int flags )
3172
+ unsigned int flags )
3173
3173
{
3174
3174
u32 metrics [RTAX_MAX ];
3175
3175
struct rtmsg * rtm ;
3176
3176
struct nlmsghdr * nlh ;
3177
3177
long expires ;
3178
3178
u32 table ;
3179
3179
3180
- if (prefix ) { /* user wants prefix routes only */
3181
- if (!(rt -> rt6i_flags & RTF_PREFIX_RT )) {
3182
- /* success since this is not a prefix route */
3183
- return 1 ;
3184
- }
3185
- }
3186
-
3187
3180
nlh = nlmsg_put (skb , portid , seq , type , sizeof (* rtm ), flags );
3188
3181
if (!nlh )
3189
3182
return - EMSGSIZE ;
@@ -3324,18 +3317,22 @@ static int rt6_fill_node(struct net *net,
3324
3317
int rt6_dump_route (struct rt6_info * rt , void * p_arg )
3325
3318
{
3326
3319
struct rt6_rtnl_dump_arg * arg = (struct rt6_rtnl_dump_arg * ) p_arg ;
3327
- int prefix ;
3328
3320
3329
3321
if (nlmsg_len (arg -> cb -> nlh ) >= sizeof (struct rtmsg )) {
3330
3322
struct rtmsg * rtm = nlmsg_data (arg -> cb -> nlh );
3331
- prefix = (rtm -> rtm_flags & RTM_F_PREFIX ) != 0 ;
3332
- } else
3333
- prefix = 0 ;
3323
+
3324
+ /* user wants prefix routes only */
3325
+ if (rtm -> rtm_flags & RTM_F_PREFIX &&
3326
+ !(rt -> rt6i_flags & RTF_PREFIX_RT )) {
3327
+ /* success since this is not a prefix route */
3328
+ return 1 ;
3329
+ }
3330
+ }
3334
3331
3335
3332
return rt6_fill_node (arg -> net ,
3336
3333
arg -> skb , rt , NULL , NULL , 0 , RTM_NEWROUTE ,
3337
3334
NETLINK_CB (arg -> cb -> skb ).portid , arg -> cb -> nlh -> nlmsg_seq ,
3338
- prefix , NLM_F_MULTI );
3335
+ NLM_F_MULTI );
3339
3336
}
3340
3337
3341
3338
static int inet6_rtm_getroute (struct sk_buff * in_skb , struct nlmsghdr * nlh )
@@ -3426,7 +3423,7 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh)
3426
3423
3427
3424
err = rt6_fill_node (net , skb , rt , & fl6 .daddr , & fl6 .saddr , iif ,
3428
3425
RTM_NEWROUTE , NETLINK_CB (in_skb ).portid ,
3429
- nlh -> nlmsg_seq , 0 , 0 );
3426
+ nlh -> nlmsg_seq , 0 );
3430
3427
if (err < 0 ) {
3431
3428
kfree_skb (skb );
3432
3429
goto errout ;
@@ -3453,7 +3450,7 @@ void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info,
3453
3450
goto errout ;
3454
3451
3455
3452
err = rt6_fill_node (net , skb , rt , NULL , NULL , 0 ,
3456
- event , info -> portid , seq , 0 , nlm_flags );
3453
+ event , info -> portid , seq , nlm_flags );
3457
3454
if (err < 0 ) {
3458
3455
/* -EMSGSIZE implies BUG in rt6_nlmsg_size() */
3459
3456
WARN_ON (err == - EMSGSIZE );
0 commit comments