Date: Tue, 4 Mar 1997 17:13:49 -0500 (EST) From: Thomas David Rivers <ponds!rivers@dg-rtp.dg.com> To: ponds!root.com!dg, ponds!freefall.cdrom.com!freebsd-hackers, ponds!eclogite.eps.nagoya-u.ac.jp!kato, ponds!lambert.org!terry Subject: "dup alloc" and Re: kern/2875: vinvalbuf() clobbers b_vnbufs chain Message-ID: <199703042213.RAA26782@lakes.water.net>
index | next in thread | raw e-mail
>
>
>
> >Description:
>
>
> The function vinvalbuf() in vfs_subr.c may clober b_vnbufs chain.
>
> in vinvalbuf():
>
> s = splbio();
> for (;;) {
> ...
> for (bp = blist; bp; bp = nbp) {
> ...
> if (bp->b_flags & B_BUSY) {
> ...
> splx(s); <--- (1)
> ...
> break; <--- (2)
> }
> }
> }
>
> Because disk I/O interruption is unmasked at (1), b_vnbufs is operated
> without splbio() after `break' at (2).
>
This looks very interesting to me... does anything think it could
be the cause of my "dup alloc" problems? I'm going to give it
a try later this evening...
- Dave Rivers -
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703042213.RAA26782>
