From owner-p4-projects@FreeBSD.ORG Tue Dec 16 15:32:06 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 41C0B16A4D0; Tue, 16 Dec 2003 15:32:06 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1B5AB16A4CE for ; Tue, 16 Dec 2003 15:32:06 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 73F6243D36 for ; Tue, 16 Dec 2003 15:32:03 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id hBGNW30B045904 for ; Tue, 16 Dec 2003 15:32:03 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id hBGNW384045901 for perforce@freebsd.org; Tue, 16 Dec 2003 15:32:03 -0800 (PST) (envelope-from sam@freebsd.org) Date: Tue, 16 Dec 2003 15:32:03 -0800 (PST) Message-Id: <200312162332.hBGNW384045901@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 43987 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 23:32:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=43987 Change 43987 by sam@sam_ebb on 2003/12/16 15:31:05 o correct exit case in soreceive to unlock the socket buffer o don't sbunlock in soreceive when restarting when no data has been transferred (note this is correct as previously we unlocked the sockbuf whenever we blocked but now we keep the sockbuf locked for the duration of a receive which means receives on a socket are single-threaded) Affected files ... .. //depot/projects/netperf+sockets/sys/kern/uipc_socket.c#6 edit Differences ... ==== //depot/projects/netperf+sockets/sys/kern/uipc_socket.c#6 (text+ko) ==== @@ -889,7 +889,7 @@ SBLASTMBUFCHK(&so->so_rcv); error = sbwait(&so->so_rcv); if (error) - goto out; + goto release; goto restart; } dontblock: @@ -1131,10 +1131,8 @@ (*pr->pr_usrreqs->pru_rcvd)(so, flags); } if (orig_resid == uio->uio_resid && orig_resid && - (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0) { - sbunlock(&so->so_rcv); + (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0) goto restart; - } if (flagsp) *flagsp |= flags;