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

Reply via email to