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.
 > Changes from his version (apart from the backport) that got it working:
 > - VOP_UNLOCK(ap->a_tvp) on entry, if not NULL. it's not used and we'll
 >   do a lookup() to find it again.
 > - clear SAVESTART from from_name and to_name. otherwise relookup() will
 >   VREF() the vnodes and we'll have a refcount leak (and so a vnode
 >   leak).
 > - make sure to always vrele(illegal_vnode).
 > 
 > With these changes, I couldn't crash or hang a kernel using rsync
 > on a WAPBL filesystem.

Alas, you would have saved some time by pinging me; I did some hacking
on it a few weeks back that covered those and some other issues.

But I didn't post it because it didn't work: running my favorite
rename stress-tester was giving me directories with entirely bogus
(sometimes negative) link counts. No idea why yet.

Do you have a non-backported version? I probably don't have time to
look at it for the next two weeks or so, but after that I can see
about merging.

 > However, the system doen't come up multiuser if / is not logged:

Odd...

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index