Subject: Re: More LFS Woes
To: None <gduzan@acm.org>
From: Konrad Schroder <perseant@hhhh.org>
List: tech-kern
Date: 02/02/2003 16:32:49
On Sun, 2 Feb 2003, Gary Duzan wrote:
> #13 0xc01c18cb in lfs_remove (v=0xe411bcbc)
> at /usr/src/sys/ufs/lfs/lfs_vnops.c:632
> #14 0xc01c6da8 in ufs_rename (v=0xe411be70) at /usr/src/sys/sys/vnode_if.h:686
> #15 0xc01c1f0f in lfs_rename (v=0xe411be70)
> at /usr/src/sys/ufs/lfs/lfs_vnops.c:741
[...]
> Any ideas about what is going on here? I have a good core dump,
> and I can reliably recreate the problem, so suggestions on things
> to check and/or try would be appreciated.
I think you should be able to duplicate this condition by something like
cd /my/lfs
: > foo
ln foo bar
mv foo bar
at least, that should duplicate your stack trace. The problem that causes
this assertion failure is that lfs_remove is being called while the
original dirop (lfs_rename) is still active on the same inode. I've just
committed the obvious fix for that, although it's not immediately clear
that this double-dirop is the cause of your original problem.
Konrad Schroder
perseant@hhhh.org