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