Lines Matching refs:unp2

292 static void	unp_disconnect(struct unpcb *unp, struct unpcb *unp2);
341 unp_pcb_lock_pair(struct unpcb *unp, struct unpcb *unp2)
344 UNP_PCB_UNLOCK_ASSERT(unp2);
346 if (unp == unp2) {
348 } else if ((uintptr_t)unp2 > (uintptr_t)unp) {
350 UNP_PCB_LOCK(unp2);
352 UNP_PCB_LOCK(unp2);
358 unp_pcb_unlock_pair(struct unpcb *unp, struct unpcb *unp2)
361 if (unp != unp2)
362 UNP_PCB_UNLOCK(unp2);
374 struct unpcb *unp2;
377 unp2 = unp->unp_conn;
378 if (__predict_false(unp2 == NULL))
380 if (__predict_false(unp == unp2))
383 UNP_PCB_UNLOCK_ASSERT(unp2);
385 if (__predict_true(UNP_PCB_TRYLOCK(unp2)))
386 return (unp2);
387 if ((uintptr_t)unp2 > (uintptr_t)unp) {
388 UNP_PCB_LOCK(unp2);
389 return (unp2);
392 unp_pcb_hold(unp2);
395 UNP_PCB_LOCK(unp2);
397 KASSERT(unp->unp_conn == unp2 || unp->unp_conn == NULL,
403 if (unp_pcb_rele(unp2)) {
404 /* unp2 is unlocked. */
408 UNP_PCB_UNLOCK(unp2);
411 return (unp2);
466 struct unpcb *unp, *unp2;
473 unp2 = unp->unp_conn;
474 if (unp2 != NULL) {
475 unp_pcb_hold(unp2);
477 unp_drop(unp2);
485 struct unpcb *unp, *unp2;
497 unp2 = unp_pcb_lock_peer(unp);
498 if (unp2 != NULL && unp2->unp_addr != NULL)
499 sa = (struct sockaddr *)unp2->unp_addr;
503 if (unp2 != NULL)
504 unp_pcb_unlock_pair(unp, unp2);
724 struct unpcb *unp, *unp2;
746 if ((unp2 = unp_pcb_lock_peer(unp)) != NULL)
747 unp_disconnect(unp, unp2);
759 struct unpcb *unp, *unp2;
764 unp2 = so2->so_pcb;
765 KASSERT(unp2 != NULL, ("uipc_connect2: unp2 == NULL"));
766 unp_pcb_lock_pair(unp, unp2);
768 unp_pcb_unlock_pair(unp, unp2);
775 struct unpcb *unp, *unp2;
821 if ((unp2 = unp_pcb_lock_peer(unp)) != NULL)
822 unp_disconnect(unp, unp2);
859 struct unpcb *unp, *unp2;
865 if ((unp2 = unp_pcb_lock_peer(unp)) != NULL)
866 unp_disconnect(unp, unp2);
906 struct unpcb *unp, *unp2;
919 unp2 = unp->unp_conn;
920 if (unp2 != NULL) {
921 UNP_PCB_LOCK(unp2);
922 if (unp2->unp_addr != NULL)
923 sa = (struct sockaddr *) unp2->unp_addr;
927 UNP_PCB_UNLOCK(unp2);
939 struct unpcb *unp, *unp2;
952 * pointer; no lock on unp2 is required as unp2->unp_socket will be
953 * static as long as we don't permit unp2 to disconnect from unp,
972 unp2 = unp->unp_conn;
973 if (unp2 == NULL) {
977 so2 = unp2->unp_socket;
990 struct unpcb *unp, *unp2;
1009 unp2 = NULL;
1029 unp2 = unp_pcb_lock_peer(unp);
1030 if (unp2 == NULL) {
1036 if (unp2->unp_flags & UNP_WANTCRED)
1042 so2 = unp2->unp_socket;
1054 unp_disconnect(unp, unp2);
1056 unp_pcb_unlock_pair(unp, unp2);
1074 if ((unp2 = unp_pcb_lock_peer(unp)) == NULL) {
1079 unp_pcb_unlock_pair(unp, unp2);
1084 if ((so2 = unp2->unp_socket) == NULL) {
1085 UNP_PCB_UNLOCK(unp2);
1090 if (unp2->unp_flags & UNP_WANTCRED) {
1095 unp2->unp_flags &= ~UNP_WANTCRED;
1133 * The PCB lock on unp2 protects the SB_STOP flag. Without it,
1143 UNP_PCB_UNLOCK(unp2);
1208 struct unpcb *unp, *unp2;
1218 if ((unp2 = unp_pcb_lock_peer(unp)) != NULL) {
1220 so2 = unp2->unp_socket;
1226 UNP_PCB_UNLOCK(unp2);
1477 struct unpcb *unp, *unp2, *unp3;
1564 VOP_UNP_CONNECT(vp, &unp2);
1565 if (unp2 == NULL) {
1569 so2 = unp2->unp_socket;
1586 unp_pcb_lock_pair(unp2, unp3);
1587 if (unp2->unp_addr != NULL) {
1588 bcopy(unp2->unp_addr, sa, unp2->unp_addr->sun_len);
1593 unp_copy_peercred(td, unp3, unp, unp2);
1595 UNP_PCB_UNLOCK(unp2);
1596 unp2 = unp3;
1599 * It is safe to block on the PCB lock here since unp2 is
1608 unp_pcb_lock_pair(unp, unp2);
1610 KASSERT(unp2 != NULL && so2 != NULL && unp2->unp_socket == so2 &&
1611 sotounpcb(so2) == unp2,
1612 ("%s: unp2 %p so2 %p", __func__, unp2, so2));
1614 unp_pcb_unlock_pair(unp, unp2);
1655 struct unpcb *unp2;
1659 unp2 = sotounpcb(so2);
1660 KASSERT(unp2 != NULL, ("unp_connect2: unp2 == NULL"));
1663 UNP_PCB_LOCK_ASSERT(unp2);
1669 unp->unp_conn = unp2;
1670 unp_pcb_hold(unp2);
1675 LIST_INSERT_HEAD(&unp2->unp_refs, unp, unp_reflink);
1682 KASSERT(unp2->unp_conn == NULL,
1683 ("%s: socket %p is already connected", __func__, unp2));
1684 unp2->unp_conn = unp;
1686 ((unp->unp_flags | unp2->unp_flags) & UNP_CONNWAIT))
1700 unp_disconnect(struct unpcb *unp, struct unpcb *unp2)
1708 UNP_PCB_LOCK_ASSERT(unp2);
1709 KASSERT(unp->unp_conn == unp2,
1710 ("%s: unpcb %p is not connected to %p", __func__, unp, unp2));
1714 so2 = unp2->unp_socket;
1719 LIST_FOREACH(unptmp, &unp2->unp_refs, unp_reflink) {
1724 ("%s: %p not found in reflist of %p", __func__, unp, unp2));
1739 MPASS(unp2->unp_conn == unp);
1740 unp2->unp_conn = NULL;
1746 if (unp == unp2) {
1753 if (!unp_pcb_rele(unp2))
1754 UNP_PCB_UNLOCK(unp2);
1917 struct unpcb *unp2;
1922 unp2 = unp->unp_conn;
1924 (unp->unp_socket->so_type == SOCK_SEQPACKET)) && unp2 != NULL) {
1925 so = unp2->unp_socket;
1935 struct unpcb *unp2;
1946 if ((unp2 = unp_pcb_lock_peer(unp)) != NULL) {
1949 unp_disconnect(unp, unp2);