svn commit: r185344 - in head/sys: netinet netinet6

Bjoern A. Zeeb bz at FreeBSD.org
Wed Nov 26 12:52:28 PST 2008


Author: bz
Date: Wed Nov 26 20:52:26 2008
New Revision: 185344
URL: http://svn.freebsd.org/changeset/base/185344

Log:
  Remove in6_pcbdetach() as it is exactly the same function
  as in_pcbdetach() and we don't need the code twice.
  
  Reviewed by:	rwatson
  MFC after:	6 weeks (*)
  (*) possibly need to leave a stub wrapper in 7 to keep the symbol.

Modified:
  head/sys/netinet/tcp_usrreq.c
  head/sys/netinet6/in6_pcb.c
  head/sys/netinet6/in6_pcb.h
  head/sys/netinet6/raw_ip6.c
  head/sys/netinet6/udp6_usrreq.c

Modified: head/sys/netinet/tcp_usrreq.c
==============================================================================
--- head/sys/netinet/tcp_usrreq.c	Wed Nov 26 19:29:33 2008	(r185343)
+++ head/sys/netinet/tcp_usrreq.c	Wed Nov 26 20:52:26 2008	(r185344)
@@ -187,24 +187,15 @@ tcp_detach(struct socket *so, struct inp
 		if (inp->inp_vflag & INP_DROPPED) {
 			KASSERT(tp == NULL, ("tcp_detach: INP_TIMEWAIT && "
 			    "INP_DROPPED && tp != NULL"));
+			in_pcbdetach(inp);
 #ifdef INET6
-			if (isipv6) {
-				in6_pcbdetach(inp);
+			if (isipv6)
 				in6_pcbfree(inp);
-			} else {
+			else
 #endif
-				in_pcbdetach(inp);
 				in_pcbfree(inp);
-#ifdef INET6
-			}
-#endif
 		} else {
-#ifdef INET6
-			if (isipv6)
-				in6_pcbdetach(inp);
-			else
-#endif
-				in_pcbdetach(inp);
+			in_pcbdetach(inp);
 			INP_WUNLOCK(inp);
 		}
 	} else {
@@ -220,23 +211,14 @@ tcp_detach(struct socket *so, struct inp
 		if (inp->inp_vflag & INP_DROPPED ||
 		    tp->t_state < TCPS_SYN_SENT) {
 			tcp_discardcb(tp);
+			in_pcbdetach(inp);
 #ifdef INET6
-			if (isipv6) {
-				in6_pcbdetach(inp);
+			if (isipv6)
 				in6_pcbfree(inp);
-			} else {
+			else
 #endif
-				in_pcbdetach(inp);
 				in_pcbfree(inp);
-#ifdef INET6
-			}
-#endif
 		} else {
-#ifdef INET6
-			if (isipv6)
-				in6_pcbdetach(inp);
-			else
-#endif
 				in_pcbdetach(inp);
 		}
 	}
@@ -1496,17 +1478,13 @@ tcp_attach(struct socket *so)
 	inp->inp_vflag |= INP_IPV4;
 	tp = tcp_newtcpcb(inp);
 	if (tp == NULL) {
+		in_pcbdetach(inp);
 #ifdef INET6
-		if (isipv6) {
-			in6_pcbdetach(inp);
+		if (isipv6)
 			in6_pcbfree(inp);
-		} else {
+		else
 #endif
-			in_pcbdetach(inp);
 			in_pcbfree(inp);
-#ifdef INET6
-		}
-#endif
 		INP_INFO_WUNLOCK(&V_tcbinfo);
 		return (ENOBUFS);
 	}

Modified: head/sys/netinet6/in6_pcb.c
==============================================================================
--- head/sys/netinet6/in6_pcb.c	Wed Nov 26 19:29:33 2008	(r185343)
+++ head/sys/netinet6/in6_pcb.c	Wed Nov 26 20:52:26 2008	(r185344)
@@ -411,16 +411,6 @@ in6_pcbdisconnect(struct inpcb *inp)
 }
 
 void
-in6_pcbdetach(struct inpcb *inp)
-{
-
-	KASSERT(inp->inp_socket != NULL, ("%s: inp_socket == NULL", __func__));
-
-	inp->inp_socket->so_pcb = NULL;
-	inp->inp_socket = NULL;
-}
-
-void
 in6_pcbfree(struct inpcb *inp)
 {
 	struct inpcbinfo *ipi = inp->inp_pcbinfo;

Modified: head/sys/netinet6/in6_pcb.h
==============================================================================
--- head/sys/netinet6/in6_pcb.h	Wed Nov 26 19:29:33 2008	(r185343)
+++ head/sys/netinet6/in6_pcb.h	Wed Nov 26 20:52:26 2008	(r185344)
@@ -73,7 +73,6 @@ void	in6_pcbpurgeif0 __P((struct inpcbin
 void	in6_losing __P((struct inpcb *));
 int	in6_pcbbind __P((struct inpcb *, struct sockaddr *, struct ucred *));
 int	in6_pcbconnect __P((struct inpcb *, struct sockaddr *, struct ucred *));
-void	in6_pcbdetach __P((struct inpcb *));
 void	in6_pcbdisconnect __P((struct inpcb *));
 void	in6_pcbfree __P((struct inpcb *));
 int	in6_pcbladdr __P((struct inpcb *, struct sockaddr *,

Modified: head/sys/netinet6/raw_ip6.c
==============================================================================
--- head/sys/netinet6/raw_ip6.c	Wed Nov 26 19:29:33 2008	(r185343)
+++ head/sys/netinet6/raw_ip6.c	Wed Nov 26 20:52:26 2008	(r185344)
@@ -604,7 +604,7 @@ rip6_detach(struct socket *so)
 	INP_INFO_WLOCK(&V_ripcbinfo);
 	INP_WLOCK(inp);
 	free(inp->in6p_icmp6filt, M_PCB);
-	in6_pcbdetach(inp);
+	in_pcbdetach(inp);
 	in6_pcbfree(inp);
 	INP_INFO_WUNLOCK(&V_ripcbinfo);
 }

Modified: head/sys/netinet6/udp6_usrreq.c
==============================================================================
--- head/sys/netinet6/udp6_usrreq.c	Wed Nov 26 19:29:33 2008	(r185343)
+++ head/sys/netinet6/udp6_usrreq.c	Wed Nov 26 20:52:26 2008	(r185344)
@@ -900,7 +900,7 @@ udp6_detach(struct socket *so)
 
 	INP_INFO_WLOCK(&V_udbinfo);
 	INP_WLOCK(inp);
-	in6_pcbdetach(inp);
+	in_pcbdetach(inp);
 	in6_pcbfree(inp);
 	INP_INFO_WUNLOCK(&V_udbinfo);
 }


More information about the svn-src-head mailing list