CVSROOT: /cvs Module name: src Changes by: bl...@cvs.openbsd.org 2018/09/20 12:59:10
Modified files: sys/kern : kern_sysctl.c sys/netinet : in_pcb.c in_pcb.h ip_divert.c raw_ip.c tcp_subr.c udp_usrreq.c sys/netinet6 : in6_pcb.c ip6_divert.c raw_ip6.c Log message: As a step towards per inpcb or socket locks, remove the net lock for netstat -a. Introduce a global mutex that protects the tables and hashes for the internet PCBs. To detect detached PCB, set its inp_socket field to NULL. This has to be protected by a per PCB mutex. The protocol pointer has to be protected by the mutex as netstat uses it. Always take the kernel lock in in_pcbnotifyall() and in6_pcbnotify() before the table mutex to avoid lock ordering problems in the notify functions. OK visa@