看板 DFBSD_bugs 關於我們 聯絡資訊
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); }