OpenZFS on Linux and FreeBSD
Go to file
Brian Behlendorf 60d25f4b93 The patch resolves the extra call to dnode_cons() in dnode_create().
The extra call to the constructor was there to reinitialize the non-
trivial primatives in the dnode (lists, mutexs, condvars, avl tree, etc).
This was safe, although not exactly clean, on Solaris because none of
the primitives allocate memory.  In the Linux port this is not true.
To keep stack usage to a minimum several of the primatives dynamically
allocate memory thus initializing them twice results in a memory leak.

This patch resolves this problem for Solaris and Linux by ensuring all
*_inits are called in the constructor, and all *_destroys are called
in the destructor.  Additionally we ensure that all dnode objects are
properly deconstructed before being freed to the slab, and when the
objects are allocated from the slab all required data members are
explicity initialized to correct values.
2009-03-19 15:22:48 -07:00
cmd Rebase master to b108 2009-02-18 12:51:31 -08:00
doc Finish removing all non-upstream bits from master 2008-12-01 16:15:29 -08:00
lib Rebase master to b108 2009-02-18 12:51:31 -08:00
module The patch resolves the extra call to dnode_cons() in dnode_create(). 2009-03-19 15:22:48 -07:00
scripts Add unicode library 2009-01-05 12:03:23 -08:00
.topdeps Add fix-dnode-cons branch 2008-11-20 12:52:07 -08:00
.topmsg The patch resolves the extra call to dnode_cons() in dnode_create(). 2009-03-19 15:22:48 -07:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
DISCLAIMER Initial Linux ZFS GIT Repo 2008-11-20 12:01:55 -08:00
GIT Refresh type in topgit git://* reference 2009-01-26 21:58:32 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
ZFS.RELEASE Rebase master to b108 2009-02-18 12:51:31 -08:00