svn commit: r260719 - in head/sys: kern sys

Gleb Smirnoff glebius at FreeBSD.org
Thu Jan 16 13:45:42 UTC 2014


Author: glebius
Date: Thu Jan 16 13:45:41 2014
New Revision: 260719
URL: http://svnweb.freebsd.org/changeset/base/260719

Log:
  Simplify wait/nowait code, eventually killing last remnant of
  historical mbuf(9) allocator flag.
  
  Sponsored by:	Nginx, Inc.

Modified:
  head/sys/kern/uipc_socket.c
  head/sys/sys/mbuf.h

Modified: head/sys/kern/uipc_socket.c
==============================================================================
--- head/sys/kern/uipc_socket.c	Thu Jan 16 13:44:47 2014	(r260718)
+++ head/sys/kern/uipc_socket.c	Thu Jan 16 13:45:41 2014	(r260719)
@@ -1723,28 +1723,27 @@ dontblock:
 				moff += len;
 			else {
 				if (mp != NULL) {
-					int copy_flag;
-
-					if (flags & MSG_DONTWAIT)
-						copy_flag = M_NOWAIT;
-					else
-						copy_flag = M_WAIT;
-					if (copy_flag == M_WAITOK)
+					if (flags & MSG_DONTWAIT) {
+						*mp = m_copym(m, 0, len,
+						    M_NOWAIT);
+						if (*mp == NULL) {
+							/*
+							 * m_copym() couldn't
+							 * allocate an mbuf.
+							 * Adjust uio_resid back
+							 * (it was adjusted
+							 * down by len bytes,
+							 * which we didn't end
+							 * up "copying" over).
+							 */
+							uio->uio_resid += len;
+							break;
+						}
+					} else {
 						SOCKBUF_UNLOCK(&so->so_rcv);
-					*mp = m_copym(m, 0, len, copy_flag);
-					if (copy_flag == M_WAITOK)
+						*mp = m_copym(m, 0, len,
+						    M_WAITOK);
 						SOCKBUF_LOCK(&so->so_rcv);
-					if (*mp == NULL) {
-						/*
-						 * m_copym() couldn't
-						 * allocate an mbuf.  Adjust
-						 * uio_resid back (it was
-						 * adjusted down by len
-						 * bytes, which we didn't end
-						 * up "copying" over).
-						 */
-						uio->uio_resid += len;
-						break;
 					}
 				}
 				m->m_data += len;

Modified: head/sys/sys/mbuf.h
==============================================================================
--- head/sys/sys/mbuf.h	Thu Jan 16 13:44:47 2014	(r260718)
+++ head/sys/sys/mbuf.h	Thu Jan 16 13:45:41 2014	(r260719)
@@ -466,14 +466,6 @@ struct mbuf {
 				   a non-initialized mbuf */
 
 /*
- * Compatibility with historic mbuf allocator.
- */
-#define	MBTOM(how)	(how)
-#define	M_DONTWAIT	M_NOWAIT
-#define	M_TRYWAIT	M_WAITOK
-#define	M_WAIT		M_WAITOK
-
-/*
  * String names of mbuf-related UMA(9) and malloc(9) types.  Exposed to
  * !_KERNEL so that monitoring tools can look up the zones with
  * libmemstat(3).


More information about the svn-src-all mailing list