[RTNETLINK]: Add rtnl_put_cacheinfo() to unify some code
IPv4, IPv6, and DECNet all use struct rta_cacheinfo in a similiar way, therefore rtnl_put_cacheinfo() is added to reuse code. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4e9b826935
commit
e3703b3de1
@ -1469,7 +1469,7 @@ static int dn_rt_fill_info(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
struct rtmsg *r;
|
||||
struct nlmsghdr *nlh;
|
||||
unsigned char *b = skb->tail;
|
||||
struct rta_cacheinfo ci;
|
||||
long expires;
|
||||
|
||||
nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*r), flags);
|
||||
r = NLMSG_DATA(nlh);
|
||||
@ -1502,16 +1502,10 @@ static int dn_rt_fill_info(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
RTA_PUT(skb, RTA_GATEWAY, 2, &rt->rt_gateway);
|
||||
if (rtnetlink_put_metrics(skb, rt->u.dst.metrics) < 0)
|
||||
goto rtattr_failure;
|
||||
ci.rta_lastuse = jiffies_to_clock_t(jiffies - rt->u.dst.lastuse);
|
||||
ci.rta_used = rt->u.dst.__use;
|
||||
ci.rta_clntref = atomic_read(&rt->u.dst.__refcnt);
|
||||
if (rt->u.dst.expires)
|
||||
ci.rta_expires = jiffies_to_clock_t(rt->u.dst.expires - jiffies);
|
||||
else
|
||||
ci.rta_expires = 0;
|
||||
ci.rta_error = rt->u.dst.error;
|
||||
ci.rta_id = ci.rta_ts = ci.rta_tsage = 0;
|
||||
RTA_PUT(skb, RTA_CACHEINFO, sizeof(ci), &ci);
|
||||
expires = rt->u.dst.expires ? rt->u.dst.expires - jiffies : 0;
|
||||
if (rtnl_put_cacheinfo(skb, &rt->u.dst, 0, 0, 0, expires,
|
||||
rt->u.dst.error) < 0)
|
||||
goto rtattr_failure;
|
||||
if (rt->fl.iif)
|
||||
RTA_PUT(skb, RTA_IIF, sizeof(int), &rt->fl.iif);
|
||||
|
||||
|
Reference in New Issue
Block a user