New ext2-related panic
Matthew Dillon
dillon at apollo.backplane.com
Tue Dec 21 15:48:28 PST 2004
:Hello
:
:I got this new ext2-related panic today:
:
:panic: assertion: cnp->cn_flags & CNP_PDIRUNLOCK in relookup
:
:To reproduce it: (/mnt/ext2 is an ext2fs mount point)
:
:cd /mnt/ext2fs
:mkdir -p foo/bar
:mv foo/bar . (or cd foo; mv bar ..)
:
:i.e., trying to move a directory up one level.
:
:The kernel dumps are at
:
:http://leaf.dragonflybsd.org/~andre/kernel.3.bz2
:http://leaf.dragonflybsd.org/~andre/vmcore.3.bz2
:
:Regards,
:Andre
Try this patch. It's the same problem that Kyle was having
with msdosfs.
(The issue here is that the old FreeBSD code was not properly
tracking the CNP_PDIRUNLOCK flag in the particular code path
in question. The panics started occuring when I added an
assertion to ensure that the flag is in the proper state. So
in that sense it is a 'good' panic in that it is catching a
situation where a CNP flag is not being properly adjusted
for side effects).
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
Index: ext2_vnops.c
===================================================================
RCS file: /cvs/src/sys/vfs/gnu/ext2fs/ext2_vnops.c,v
retrieving revision 1.17
diff -u -r1.17 ext2_vnops.c
--- ext2_vnops.c 12 Nov 2004 00:09:30 -0000 1.17
+++ ext2_vnops.c 21 Dec 2004 23:45:31 -0000
@@ -507,6 +507,7 @@
*/
vref(tdvp);
error = ext2_checkpath(ip, dp, tcnp->cn_cred);
+ tcnp->cn_flags |= CNP_PDIRUNLOCK;
if (error) {
vrele(tdvp);
goto out;
More information about the Bugs
mailing list