Skip site navigation (1)Skip section navigation (2)
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>

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



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