Hi. I triggered the panic from the subject with most recent ZFS on FreeBSD and I wonder if this is a problem in OpenSolaris as well.
The dn_objset pointer is invalidated in dnode_destroy():
POINTER_INVALIDATE(&dn->dn_objset);
It is checked for being invalid in dnode_create():
dnode_t *dn = kmem_cache_alloc(dnode_cache, KM_SLEEP);
ASSERT(!POINTER_IS_VALID(dn->dn_objset));
So it does makes sense, but only when dnode was used already in the
past. Will that work for first allocation where memory is filled with
unknown data? I can't find that kmem_cache_alloc() fills entire buffer
with something that will pass this assertion, but maybe I haven't looked
close enough?
--
Pawel Jakub Dawidek http://www.wheelsystems.com
[email protected] http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
pgppjZcjew3FL.pgp
Description: PGP signature
_______________________________________________ zfs-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/zfs-code
