This small patch fixes an issue where dmu_free_long_object_raw()
calls dnode_hold() after freeing the dnode a line above.
Reviewed-by: Jorgen Lundman <lundman@lundman.net>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #6766
dmu_tx_mark_netfree(tx);
err = dmu_tx_assign(tx, TXG_WAIT);
if (err == 0) {
- err = dmu_object_free(os, object, tx);
- if (err == 0 && raw)
- VERIFY0(dmu_object_dirty_raw(os, object, tx));
+ if (raw)
+ err = dmu_object_dirty_raw(os, object, tx);
+ if (err == 0)
+ err = dmu_object_free(os, object, tx);
dmu_tx_commit(tx);
} else {