summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2006-03-16 07:03:14 +0000
committerrwatson <rwatson@FreeBSD.org>2006-03-16 07:03:14 +0000
commit053507bd40c99c756879636521e0827573f88946 (patch)
tree18f8a38d832ba3a76ee6c7ede2ca3a6acbb82de9
parent865b6c5d997ec0ccc6b93fe7d64bcd86bf666e10 (diff)
downloadFreeBSD-src-053507bd40c99c756879636521e0827573f88946.zip
FreeBSD-src-053507bd40c99c756879636521e0827573f88946.tar.gz
Change soabort() from returning int to returning void, since all
consumers ignore the return value, soabort() is required to succeed, and protocols produce errors here to report multiple freeing of the pcb, which we hope to eliminate.
-rw-r--r--sys/kern/uipc_sockbuf.c2
-rw-r--r--sys/kern/uipc_socket.c8
-rw-r--r--sys/kern/uipc_socket2.c2
-rw-r--r--sys/netinet/tcp_syncache.c2
-rw-r--r--sys/sys/socketvar.h2
5 files changed, 7 insertions, 9 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c
index 0e2609b..bdeb344 100644
--- a/sys/kern/uipc_sockbuf.c
+++ b/sys/kern/uipc_sockbuf.c
@@ -266,7 +266,7 @@ sonewconn(head, connstatus)
sp->so_qstate &= ~SQ_INCOMP;
sp->so_head = NULL;
ACCEPT_UNLOCK();
- (void) soabort(sp);
+ soabort(sp);
ACCEPT_LOCK();
}
TAILQ_INSERT_TAIL(&head->so_incomp, so, so_list);
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 561bafd..0d22b2e 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -434,7 +434,7 @@ soclose(so)
sp->so_qstate &= ~SQ_INCOMP;
sp->so_head = NULL;
ACCEPT_UNLOCK();
- (void) soabort(sp);
+ soabort(sp);
ACCEPT_LOCK();
}
while ((sp = TAILQ_FIRST(&so->so_comp)) != NULL) {
@@ -443,7 +443,7 @@ soclose(so)
sp->so_qstate &= ~SQ_COMP;
sp->so_head = NULL;
ACCEPT_UNLOCK();
- (void) soabort(sp);
+ soabort(sp);
ACCEPT_LOCK();
}
ACCEPT_UNLOCK();
@@ -489,7 +489,7 @@ discard:
* it to acquire additional socket locks that may cause recursion or lock
* order reversals.
*/
-int
+void
soabort(so)
struct socket *so;
{
@@ -500,9 +500,7 @@ soabort(so)
ACCEPT_LOCK();
SOCK_LOCK(so);
sotryfree(so); /* note: does not decrement the ref count */
- return (error);
}
- return (0);
}
int
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index 0e2609b..bdeb344 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -266,7 +266,7 @@ sonewconn(head, connstatus)
sp->so_qstate &= ~SQ_INCOMP;
sp->so_head = NULL;
ACCEPT_UNLOCK();
- (void) soabort(sp);
+ soabort(sp);
ACCEPT_LOCK();
}
TAILQ_INSERT_TAIL(&head->so_incomp, so, so_list);
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index 5999b99..2ba6808 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -720,7 +720,7 @@ abort:
INP_UNLOCK(inp);
abort2:
if (so != NULL)
- (void) soabort(so);
+ soabort(so);
return (NULL);
}
diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h
index 4fdfcda..1ff3843 100644
--- a/sys/sys/socketvar.h
+++ b/sys/sys/socketvar.h
@@ -487,7 +487,7 @@ int sbreserve_locked(struct sockbuf *sb, u_long cc, struct socket *so,
void sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb);
int sbwait(struct sockbuf *sb);
int sb_lock(struct sockbuf *sb);
-int soabort(struct socket *so);
+void soabort(struct socket *so);
int soaccept(struct socket *so, struct sockaddr **nam);
struct socket *soalloc(int mflags);
int socheckuid(struct socket *so, uid_t uid);
OpenPOWER on IntegriCloud