ZFS + xattr -> panic loop

javocado javocado at gmail.com
Thu Nov 13 19:43:58 UTC 2014


After running an rsync (upload) into my zfs filesystem using the
--fake-super option (which stores permissions in extended attributes) the
zfs filesystem has somehow become corrupt. When booting the system it
panic's upon zfs startup:

panic: solaris assert: VFS_ROOT(vfsp, LK_EXCLUSIVE, &vp) == 0, file:
/usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
, line: 1170
cpuid = 12
KDB: stack backtrace:
#0 0xffffffff8034b3ae at kdb_backtrace+0x5e
#1 0xffffffff803185c7 at panic+0x187
#2 0xffffffff80ab8213 at zfs_mount+0x563
#3 0xffffffff803a2635 at vfs_donmount+0xdc5
#4 0xffffffff803a3133 at nmount+0x63
#5 0xffffffff80553284 at amd64_syscall+0x1f4
#6 0xffffffff8053bc2c at Xfast_syscall+0xfc

I was able to boot the system by setting the filesystem:

canmount=off

However, I am still unable to mount it manually without causing a similar
panic.

So, setting the cause of the panic aside for the moment, I just want to get
to the data. I'd like to think I can do that by turning off xattrs and
mounting it read-only however:

# zfs set xattr=off pool/data
property 'xattr' not supported on FreeBSD: permission denied

How can I turn that off?

Second or alternately, if I want to just dump the filesystem out excluding
the extended attributes, so that I have a clean, mountable data set, how
would I do that?

Thank you!


More information about the freebsd-fs mailing list