Hello, I'm attempting to simulate unionfs on RELENG_5_4 by remounting multiple times one vnode-backed md disk and then union mounting others on top. Here are my steps below w/ a quick backtrace. I have the core saved and can look into it farther if need be. Ideas outside of ``don't do that''? Jon touch /root/foo mdconfig -a -t vnode -s 32m -f /root/foo newfs /dev/md0 mount /dev/md0 /tmp/md0 touch /tmp/md0/test1 umount /tmp/md0 mdconfig -d -u md0 # Strangeness coming mdconfig -a -t vnode -f /root/foo -o readonly -u md0 mdconfig -a -t vnode -f /root/foo -o readonly -u md1 mdconfig -a -t vnode -f /root/foo -o readonly -u md2 mount -o ro /dev/md0 /tmp/md0 mount -o ro /dev/md1 /tmp/md1 mount -o ro /dev/md1 /tmp/md2 # Multiple mounts touch bar{0,1,2} mdconfig -a -t vnode -s 32m -f /root/bar0 -u md4 mdconfig -a -t vnode -s 32m -f /root/bar1 -u md5 mdconfig -a -t vnode -s 32m -f /root/bar2 -u md6 newfs /dev/md4 newfs /dev/md5 newfs /dev/md6 mount -o union /dev/md4 /tmp/md0 mount -o union /dev/md5 /tmp/md1 mount -o union /dev/md6 /tmp/md2 mount [snip] /dev/md0 on /tmp/md0 (ufs, local, read-only) /dev/md1 on /tmp/md1 (ufs, local, read-only) /dev/md2 on /tmp/md2 (ufs, local, read-only) /dev/md4 on /tmp/md0 (ufs, local, union) /dev/md5 on /tmp/md1 (ufs, local, union) /dev/md6 on /tmp/md2 (ufs, local, union) mdconfig -l md6 md5 md4 md2 md1 md0 ls -li /tmp/md0 total 2 3 drwxrwxr-x 2 root operator 512 Oct 16 20:30 .snap 4 -rw-r--r-- 1 root wheel 0 Oct 16 20:21 test1 touch /tmp/md0/test2 ls -li /tmp/md0 total 2 3 drwxrwxr-x 2 root operator 512 Oct 16 20:30 .snap 4 -rw-r--r-- 1 root wheel 0 Oct 16 20:21 test1 4 -rw-r--r-- 1 root wheel 0 Oct 16 20:31 test2 touch /tmp/md0/test3 ls -li /tmp/md0 total 2 3 drwxrwxr-x 2 root operator 512 Oct 16 20:30 .snap 4 -rw-r--r-- 1 root wheel 0 Oct 16 20:21 test1 4 -rw-r--r-- 1 root wheel 0 Oct 16 20:31 test2 5 -rw-r--r-- 1 root wheel 0 Oct 16 20:32 test3 <panic> (kgdb) bt #0 doadump () at pcpu.h:159 #1 0xc054d2e2 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:410 #2 0xc054d578 in panic (fmt=0xc0735a98 "ffs_sync: rofs mod") at /usr/src/sys/kern/kern_shutdown.c:566 #3 0xc068a5fc in ffs_sync (mp=0xc2304000, waitfor=3, cred=0xc21dbd80, td=0xc22efd80) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1123 #4 0xc05a23b6 in sync_fsync (ap=0xe49f2ce4) at /usr/src/sys/kern/vfs_subr.c:3475 #5 0xc059f1cd in sched_sync () at vnode_if.h:627 #6 0xc0538e88 in fork_exit (callout=0xc059ee0c <sched_sync>, arg=0x0, frame=0xe49f2d48) at /usr/src/sys/kern/kern_fork.c:791 #7 0xc06d43bc in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:209 (kgdb) f 3 #3 0xc068a5fc in ffs_sync (mp=0xc2304000, waitfor=3, cred=0xc21dbd80, td=0xc22efd80) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1123 1123 lockreq = LK_EXCLUSIVE | LK_NOWAIT; (kgdb) inf f Stack level 3, frame at 0xe49f2c94: eip = 0xc068a5fc in ffs_sync (/usr/src/sys/ufs/ffs/ffs_vfsops.c:1123); saved eip 0xc05a23b6 called by frame at 0xe49f2cc4, caller of frame at 0xe49f2c3c source language c. Arglist at 0xe49f2c38, args: mp=0xc2304000, waitfor=3, cred=0xc21dbd80, td=0xc22efd80 Locals at 0xe49f2c38, Previous frame's sp is 0xe49f2c94 Saved registers: ebx at 0xe49f2c80, ebp at 0xe49f2c8c, esi at 0xe49f2c84, edi at 0xe49f2c88, eip at 0xe49f2c90 (kgdb) l 1118 } 1119 /* 1120 * Write back each (modified) inode. 1121 */ 1122 wait = 0; 1123 lockreq = LK_EXCLUSIVE | LK_NOWAIT; 1124 if (waitfor == MNT_WAIT) { 1125 wait = 1; 1126 lockreq = LK_EXCLUSIVE; 1127 } __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com