CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2025/07/15 03:55:49

Modified files:
        sys/sys        : sysctl.h 
        sys/net        : rtable.c rtable.h rtsock.c 

Log message:
add rtable_read(), a "reader" variant of rtable_walk.

rtable_read doesn't give up the rtable lock when calling the rtentry
handler, and consequently doesnt need to mess around with rtentry
refs. rtable_walk is often used to update or delete routes.

when i moved art from srp to smr i also made rtable_walk properly
account for the rtentry references when it gives up the rtable lock.
this in turn meant that the routing table dump sysctl reported extra
rtentry refs than it used to. dumping the routing table doesn't
change the shape of the routing table, so we don't have to give up
the rtable lock for it's callback.

the rt ref damage was pointed out by bluhm (which i didnt absorb
somehow) and later anton.
discussed with, tested by, and ok anton@ claudio@ bluhm@

Reply via email to