Download raw body.
Merge UNP_BINDING and UNP_CONNECTING flags to UNP_BUSY
They are redundant because always checked together. These flags are
not used outside unix(4) PCB layer, so the change is local.
Index: sys/kern/uipc_usrreq.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v
retrieving revision 1.201
diff -u -p -r1.201 uipc_usrreq.c
--- sys/kern/uipc_usrreq.c 17 Mar 2024 19:47:08 -0000 1.201
+++ sys/kern/uipc_usrreq.c 19 Mar 2024 10:37:21 -0000
@@ -329,14 +329,14 @@ uipc_bind(struct socket *so, struct mbuf
struct nameidata nd;
size_t pathlen;
- if (unp->unp_flags & (UNP_BINDING | UNP_CONNECTING))
+ if (unp->unp_flags & UNP_BUSY)
return (EINVAL);
if (unp->unp_vnode != NULL)
return (EINVAL);
if ((error = unp_nam2sun(nam, &soun, &pathlen)))
return (error);
- unp->unp_flags |= UNP_BINDING;
+ unp->unp_flags |= UNP_BUSY;
/*
* Enforce `i_lock' -> `solock' because fifo subsystem
@@ -405,7 +405,7 @@ uipc_bind(struct socket *so, struct mbuf
VOP_UNLOCK(vp);
out:
KERNEL_UNLOCK();
- unp->unp_flags &= ~UNP_BINDING;
+ unp->unp_flags &= ~UNP_BUSY;
return (error);
}
@@ -415,7 +415,7 @@ uipc_listen(struct socket *so)
{
struct unpcb *unp = sotounpcb(so);
- if (unp->unp_flags & (UNP_BINDING | UNP_CONNECTING))
+ if (unp->unp_flags & UNP_BUSY)
return (EINVAL);
if (unp->unp_vnode == NULL)
return (EINVAL);
@@ -820,7 +820,7 @@ unp_connect(struct socket *so, struct mb
int error;
unp = sotounpcb(so);
- if (unp->unp_flags & (UNP_BINDING | UNP_CONNECTING))
+ if (unp->unp_flags & UNP_BUSY)
return (EISCONN);
if ((error = unp_nam2sun(nam, &soun, NULL)))
return (error);
@@ -829,7 +829,7 @@ unp_connect(struct socket *so, struct mb
nd.ni_pledge = PLEDGE_UNIX;
nd.ni_unveil = UNVEIL_WRITE;
- unp->unp_flags |= UNP_CONNECTING;
+ unp->unp_flags |= UNP_BUSY;
/*
* Enforce `i_lock' -> `solock' because fifo subsystem
@@ -921,7 +921,7 @@ put:
unlock:
KERNEL_UNLOCK();
solock(so);
- unp->unp_flags &= ~UNP_CONNECTING;
+ unp->unp_flags &= ~UNP_BUSY;
/*
* The peer socket could be closed by concurrent thread
Index: sys/sys/unpcb.h
===================================================================
RCS file: /cvs/src/sys/sys/unpcb.h,v
retrieving revision 1.45
diff -u -p -r1.45 unpcb.h
--- sys/sys/unpcb.h 26 Nov 2022 17:51:18 -0000 1.45
+++ sys/sys/unpcb.h 19 Mar 2024 10:37:21 -0000
@@ -91,8 +91,7 @@ struct unpcb {
*/
#define UNP_FEIDS 0x01 /* unp_connid contains information */
#define UNP_FEIDSBIND 0x02 /* unp_connid was set by a bind */
-#define UNP_BINDING 0x04 /* unp is binding now */
-#define UNP_CONNECTING 0x08 /* unp is connecting now */
+#define UNP_BUSY 0x04 /* unp is binding or connecting now */
/*
* flag bits in unp_gcflags
Merge UNP_BINDING and UNP_CONNECTING flags to UNP_BUSY