From owner-freebsd-current Tue Feb 25 12:22:48 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F1FB837B401 for ; Tue, 25 Feb 2003 12:22:45 -0800 (PST) Received: from smtp.web.de (smtp01.web.de [217.72.192.180]) by mx1.FreeBSD.org (Postfix) with ESMTP id B79E843FBF for ; Tue, 25 Feb 2003 12:22:15 -0800 (PST) (envelope-from vidalrod@web.de) Received: from pd9e4e22c.dip.t-dialin.net ([217.228.226.44] helo=web.de) by smtp.web.de with asmtp (WEB.DE(Exim) 4.95 #31) id 18nlBi-0000ih-00; Tue, 25 Feb 2003 20:56:26 +0100 Message-ID: <3E5BCA69.8050804@web.de> Date: Tue, 25 Feb 2003 20:56:25 +0100 From: =?ISO-8859-1?Q?David_Vidal_Rodr=EDguez?= Reply-To: vidalrod@in.tum.de User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; es-AR; rv:1.2.1) Gecko/20030202 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Alexander Leidinger Cc: CURRENT Subject: Re: [Fwd: mkisofs | burncd not working in 5.0 ?] References: <3E5ACB6F.4010404@web.de> <20030225140138.402ba14d.Alexander@Leidinger.net> In-Reply-To: <20030225140138.402ba14d.Alexander@Leidinger.net> Content-Type: multipart/mixed; boundary="------------020109070001080001070407" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multi-part message in MIME format. --------------020109070001080001070407 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Alexander Leidinger wrote: > Please try the patch in from the mail to -current with the Message-ID > <20030210033714.O1731-100000@gamplex.bde.org> and report if it works for > you. I've applied the patch included here, but it leads to an error (the .rej file shows it). I infer from the reject that a "while" has to be replaced by an "if", and so I've edited it by hand. The problem is that my system still shows the same behavior as before :( Maybe I've applied the wrong patch? CU, David. --------------020109070001080001070407 Content-Type: text/plain; name="patch-fifo_vnops" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-fifo_vnops" diff -u -2 -r1.81 fifo_vnops.c --- fifo_vnops.c 13 Jan 2003 00:28:57 -0000 1.81 +++ fifo_vnops.c 9 Feb 2003 17:32:16 -0000 @@ -227,5 +227,5 @@ } if ((ap->a_mode & FREAD) && (ap->a_mode & O_NONBLOCK) == 0) { - while (fip->fi_writers == 0) { + if (fip->fi_writers == 0) { VOP_UNLOCK(vp, 0, td); error = tsleep((caddr_t)&fip->fi_readers, @@ -234,4 +234,9 @@ if (error) goto bad; + /* + * We must have got woken up because we had a writer. + * That (and not still having one) is the condition + * that we must wait for. + */ } } @@ -243,16 +248,16 @@ } } else { - while (fip->fi_readers == 0) { + if (fip->fi_readers == 0) { VOP_UNLOCK(vp, 0, td); - /* - * XXX: Some race I havn't located is solved - * by timing out after a sec. Race seen when - * sendmail hangs here during boot /phk - */ error = tsleep((caddr_t)&fip->fi_writers, - PCATCH | PSOCK, "fifoow", hz); + PCATCH | PSOCK, "fifoow", 0); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); if (error) goto bad; + /* + * We must have got woken up because we had + * a reader. That (and not still having one) + * is the condition that we must wait for. + */ } } --------------020109070001080001070407 Content-Type: text/plain; name="fifo_vnops.c.rej" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fifo_vnops.c.rej" *************** *** 227,231 **** } if ((ap->a_mode & FREAD) && (ap->a_mode & O_NONBLOCK) == 0) { - while (fip->fi_writers == 0) { VOP_UNLOCK(vp, 0, td); error = tsleep((caddr_t)&fip->fi_readers, --- 227,231 ---- } if ((ap->a_mode & FREAD) && (ap->a_mode & O_NONBLOCK) == 0) { + if (fip->fi_writers == 0) { VOP_UNLOCK(vp, 0, td); error = tsleep((caddr_t)&fip->fi_readers, --------------020109070001080001070407-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message