Date: Tue, 4 Mar 1997 12:30:01 -0800 (PST) From: David Greenman <dg@root.com> To: freebsd-bugs Subject: Re: kern/2875: vinvalbuf() clobbers b_vnbufs chain Message-ID: <199703042030.MAA13938@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR kern/2875; it has been noted by GNATS.
From: David Greenman <dg@root.com>
To: kato@eclogite.eps.nagoya-u.ac.jp
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: kern/2875: vinvalbuf() clobbers b_vnbufs chain
Date: Tue, 04 Mar 1997 12:21:09 -0800
Hmmm, the fix seems overly complicated. How about this instead:
Index: vfs_subr.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_subr.c,v
retrieving revision 1.64.2.2
diff -c -r1.64.2.2 vfs_subr.c
*** vfs_subr.c 1997/02/28 11:11:50 1.64.2.2
--- vfs_subr.c 1997/03/04 20:17:51
***************
*** 502,510 ****
error = tsleep((caddr_t) bp,
slpflag | (PRIBIO + 1), "vinvalbuf",
slptimeo);
! splx(s);
! if (error)
return (error);
break;
}
bremfree(bp);
--- 502,511 ----
error = tsleep((caddr_t) bp,
slpflag | (PRIBIO + 1), "vinvalbuf",
slptimeo);
! if (error) {
! splx(s);
return (error);
+ }
break;
}
bremfree(bp);
***************
*** 523,535 ****
brelse(bp);
}
}
- splx(s);
- s = splbio();
while (vp->v_numoutput > 0) {
vp->v_flag |= VBWAIT;
tsleep(&vp->v_numoutput, PVM, "vnvlbv", 0);
}
splx(s);
/*
--- 524,535 ----
brelse(bp);
}
}
while (vp->v_numoutput > 0) {
vp->v_flag |= VBWAIT;
tsleep(&vp->v_numoutput, PVM, "vnvlbv", 0);
}
+
splx(s);
/*
-DG
David Greenman
Core-team/Principal Architect, The FreeBSD Project
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703042030.MAA13938>
