Hi Darren, I took a look at your webrev and have a couple of questions: 1. When you built this source did you clobber all of the kernel portion and rebuild?
I ask this because in your sdiff for uts/common/fs/zfs/sys/dnode.h you've inserted the dnode structure member dn_crypt above dn_nlevels. If you have code that is trying to manipulate dn_crypt but some old code still references dn_nlevels at the offset of dn_crypt, you're going to run into very strange problems. 2. If you've performed a clobber build, this could potentially indicate a corrupted dnode_phys_t or corrupted objset_impl_t. The dnode gets dn_nlevels set from dmu_objset_create_impl where it pulls the value our of the objset os_meta_dnode. In dnode_create, it uses the dnode_phys_t's dn_nlevels to set the value. If the value is getting set to zero by one of these routines you may have corrupted something in the objset or the dnode_phys. Have you investigated what is going on with these structures? I hope this helps, -j -- This messages posted from opensolaris.org