On Wed, Jan 13, 2010 at 10:45:29AM +0000, David Holland wrote: > 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: > http://www.eecs.harvard.edu/~dholland/tmp/netbsd/ufs_rename/ > > 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.
I applied these fixes to my netbsd-5 tree. > > 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. I get this almost immediatly on a Xen guest with WAPBL: login: panic: kernel diagnostic assertion "dvp->v_size == dp->i_size" failed: file "/dsk/l1/misc/bouyer/netbsd-5/src/sys/ufs/ufs/ufs_lookup.c", line 897 This is the kassert just after "Get the block containing the space for the new directory entry". > > 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. I worked around this by using ufs_wapbl_rename() even for non-WAPBL mounts. The KASSERT(dvp->v_size == dp->i_size) does fire too, but not as fast as with WAPBL on. -- Manuel Bouyer <[email protected]> NetBSD: 26 ans d'experience feront toujours la difference --
