svn commit: r334174 - head/sys/kern
Matt Macy
mmacy at FreeBSD.org
Thu May 24 18:22:06 UTC 2018
Author: mmacy
Date: Thu May 24 18:22:05 2018
New Revision: 334174
URL: https://svnweb.freebsd.org/changeset/base/334174
Log:
AF_UNIX in connectat unp and unp2 can be the same
Modified:
head/sys/kern/uipc_usrreq.c
Modified: head/sys/kern/uipc_usrreq.c
==============================================================================
--- head/sys/kern/uipc_usrreq.c Thu May 24 18:02:02 2018 (r334173)
+++ head/sys/kern/uipc_usrreq.c Thu May 24 18:22:05 2018 (r334174)
@@ -1610,14 +1610,18 @@ unp_connectat(int fd, struct socket *so, struct sockad
mac_socketpeer_set_from_socket(so, so2);
mac_socketpeer_set_from_socket(so2, so);
#endif
- } else
- unp_pcb_lock2(unp, unp2);
-
+ } else {
+ if (unp == unp2)
+ UNP_PCB_LOCK(unp);
+ else
+ unp_pcb_lock2(unp, unp2);
+ }
KASSERT(unp2 != NULL && so2 != NULL && unp2->unp_socket == so2 &&
sotounpcb(so2) == unp2,
("%s: unp2 %p so2 %p", __func__, unp2, so2));
error = unp_connect2(so, so2, PRU_CONNECT);
- UNP_PCB_UNLOCK(unp2);
+ if (unp != unp2)
+ UNP_PCB_UNLOCK(unp2);
UNP_PCB_UNLOCK(unp);
bad2:
mtx_unlock(vplock);
More information about the svn-src-head
mailing list