CVSROOT:        /cvs
Module name:    src
Changes by:     bl...@cvs.openbsd.org   2025/01/09 09:47:24

Modified files:
        sys/netinet    : in_pcb.c in_pcb.h tcp_input.c tcp_usrreq.c 

Log message:
Run TCP sysctl ident and drop with shared net lock.

Convert exclusive net lock for TCPCTL_IDENT and TCPCTL_DROP to
shared net lock and push it down into tcp_ident().  Grab the socket
lock there with in_pcbsolock_ref().  Move socket release from
in_pcbsolock() to in_pcbsounlock_rele() and add _ref and _rele
suffix to the inpcb socket lock functions.  They both lock and
refcount now.  in_pcbsounlock_rele() ignores NULL sockets to make
the unlock path in error case simpler.  Socket lock also protects
tcp_drop() and tcp_close() now, so the socket pointer from incpb
may be NULL during unlock.  In tcp_ident() improve consistency check
of address family.

OK mvs@

Reply via email to