Subject: Re: More LFS Woes
To: None <gduzan@acm.org>
From: Konrad Schroder <perseant@hhhh.org>
List: current-users
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