On Fri, Jun 27, 2008 at 08:37:37PM +0200, Manuel Bouyer wrote:
> So we set BC_BUSY just before releasing bufcache_lock, on a buffer which is
> in the LRU queue. That's why we're getting the panic later.
> Now, is it OK to have a dirty buffer in the LRU queue ? It looks like
> we could recycle dirty buffers from the LRU queue without flushing them
> to disk first, isn't it ?
One case where this can happen is though bdwrite(), which sets
BO_DELWRI before calling brelse(). I added a check for this in brelsel()
(putting a BO_DELWRI buffer in one of the free lists), and got several
different traces; but it always has bdwrite() in it.
Where do we go from here ?
Manuel Bouyer <[email protected]>
NetBSD: 26 ans d'experience feront toujours la difference