tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: rename(), wapbl and deadlock

On Thu, Dec 17, 2009 at 10:29:13PM +0100, Manuel Bouyer wrote:
 > I got a look again at the ufs_rename patch that David Holland sent
 > at the end of september, and managed to get it working on netbsd-5.

I've posted three fix patches (that apply on top) along with the
original patches here:

This includes fixes for the link count problems I was seeing on the
last go-around, and also fixes the panic: relookup: bad hash issue
(which turned out to be due to insufficiently careful frobbing of
SAVESTART), and also includes (I believe) all the issues posted here.

It is now fairly solid, but there are at least two issues remaining:
after pounding for a while one fairly reliably gets KASSERT(vp->v_size
!= ip->i_size) failing in ufs_blkatoff, for reasons that are not
entirely clear. I suspect the state information that ufs_lookup leaves
behind in the inode is getting mixed up or garbaged.

The other is this:

 > With these changes, I couldn't crash or hang a kernel using rsync
 > on a WAPBL filesystem. However, the system doen't come up multiuser
 > if / is not logged:
 > Building databases: devpanic: kernel diagnostic assertion "bn >= NDADDR" 
 > failed: file "/dsk/l1/misc/bouyer/netbsd-5/src/sys/ufs/ufs/ufs_bmap.c", line 
 > 349
 > fatal breakpoint trap in supervisor mode

which I think may be related, but maybe not, and I haven't so far
looked into it.

David A. Holland

Home | Main Index | Thread Index | Old Index