Object now or forever hold your peace!  Patch included again for 
    reference.
        
                                        -Matt
                                        Matthew Dillon 
                                        <dil...@backplane.com>

Index: uipc_socket.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/uipc_socket.c,v
retrieving revision 1.60
diff -u -r1.60 uipc_socket.c
--- uipc_socket.c       1999/06/17 23:54:47     1.60
+++ uipc_socket.c       1999/07/22 23:08:38
@@ -413,7 +413,8 @@
        register struct mbuf *m;
        register long space, len, resid;
        int clen = 0, error, s, dontroute, mlen;
-       int atomic = sosendallatonce(so) || top;
+       int atomic = sosendallatonce(so) || top;        /* required atomicy */
+       int try_atomic = atomic;                        /* requested atomicy */
 
        if (uio)
                resid = uio->uio_resid;
@@ -518,6 +519,7 @@
                                mlen = MCLBYTES;
                                len = min(min(mlen, resid), space);
                        } else {
+                               try_atomic = 1;         /* try to optimize */
 nopages:
                                len = min(min(mlen, resid), space);
                                /*
@@ -541,7 +543,7 @@
                                        top->m_flags |= M_EOR;
                                break;
                        }
-                   } while (space > 0 && atomic);
+                   } while (space > 0 && try_atomic);
                    if (dontroute)
                            so->so_options |= SO_DONTROUTE;
                    s = splnet();                               /* XXX */



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to