Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Feb 2003 20:56:25 +0100
From:      =?ISO-8859-1?Q?David_Vidal_Rodr=EDguez?= <vidalrod@web.de>
To:        Alexander Leidinger <Alexander@Leidinger.net>
Cc:        CURRENT <freebsd-current@FreeBSD.ORG>
Subject:   Re: [Fwd: mkisofs | burncd not working in 5.0 ?]
Message-ID:  <3E5BCA69.8050804@web.de>
In-Reply-To: <20030225140138.402ba14d.Alexander@Leidinger.net>
References:  <3E5ACB6F.4010404@web.de> <20030225140138.402ba14d.Alexander@Leidinger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E5BCA69.8050804>