[issue1601] ext2fs Panics on writing files

YONETANI Tomokazu qhwt+dfly at les.ath.cx
Wed Nov 11 21:04:27 PST 2009


On Thu, Nov 12, 2009 at 12:12:33AM +0000, Venkatesh Srinivas (via DragonFly issue tracker) wrote:
> Two different panics, trying to write files to an ext2 file system made on
> Linux. Here are the backtraces:

I think they're the same one: the caller of ext2_fsync_bp() has been
converted to use a token to protect the rb tree, but the callee still
assumes that it's called with critical section entered:

diff --git a/sys/vfs/gnu/ext2fs/ext2_vnops.c b/sys/vfs/gnu/ext2fs/ext2_vnops.c
index 1b7fa73..99b0bb5 100644
--- a/sys/vfs/gnu/ext2fs/ext2_vnops.c
+++ b/sys/vfs/gnu/ext2fs/ext2_vnops.c
@@ -251,7 +251,6 @@ ext2_fsync_bp(struct buf *bp, void *data)
 	if ((bp->b_flags & B_DELWRI) == 0)
 		panic("ext2_fsync: not dirty");
 	bremfree(bp);
-	crit_exit();
 
 	/*
 	 * Wait for I/O associated with indirect blocks to complete,
@@ -261,7 +260,6 @@ ext2_fsync_bp(struct buf *bp, void *data)
 		bawrite(bp);
 	else
 		bwrite(bp);
-	crit_enter();
 	return(1);
 }
 





More information about the Bugs mailing list