Module Name: src Committed By: ozaki-r Date: Tue Nov 15 01:50:06 UTC 2016
Modified Files: src/sys/net: if.c radix.c radix.h route.c route.h rtbl.c src/sys/netinet6: nd6_rtr.c src/sys/nfs: nfs_boot.c Log Message: Don't use rt_walktree to delete routes Some functions use rt_walktree to scan the routing table and delete matched routes. However, we shouldn't use rt_walktree to delete routes because rt_walktree is recursive to the routing table (radix tree) and isn't friendly to MP-ification. rt_walktree allows a caller to pass a callback function to delete an matched entry. The callback function is called from an API of the radix tree (rn_walktree) but also calls an API of the radix tree to delete an entry. This change adds a new API of the radix tree, rn_search_matched, which returns a matched entry that is selected by a callback function passed by a caller and the caller itself deletes the entry. By using the API, we can avoid the recursive form. To generate a diff of this commit: cvs rdiff -u -r1.361 -r1.362 src/sys/net/if.c cvs rdiff -u -r1.45 -r1.46 src/sys/net/radix.c cvs rdiff -u -r1.22 -r1.23 src/sys/net/radix.h cvs rdiff -u -r1.181 -r1.182 src/sys/net/route.c cvs rdiff -u -r1.106 -r1.107 src/sys/net/route.h cvs rdiff -u -r1.3 -r1.4 src/sys/net/rtbl.c cvs rdiff -u -r1.119 -r1.120 src/sys/netinet6/nd6_rtr.c cvs rdiff -u -r1.86 -r1.87 src/sys/nfs/nfs_boot.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.