Hello,
Just looking at a piece of code in dmu_tx.c and have one question:
in dmu_tx_t *
dmu_tx_create_dd(dsl_dir_t *dd)
{
dmu_tx_t *tx = kmem_zalloc(sizeof (dmu_tx_t), KM_SLEEP);
tx->tx_dir = dd;
if (dd)
tx->tx_pool = dd->dd_pool;
According to this, the tx_pool may remain un-initialized, if dd==null.
in dmu_tx_count_free() the tx_pool is de-referenced without checking.
spa_t *spa = txh->txh_tx->tx_pool->dp_spa;
Could the spa here be derived from the dnode's object set instead?
e.g.:
spa_t *spa = dn->dn_objset->os_spa;
TIA for any insights.
Steve
--
This message posted from opensolaris.org
_______________________________________________
zfs-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-code