diff options
author | Matthew Macy <[email protected]> | 2020-02-26 16:09:17 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2020-02-26 16:09:17 -0800 |
commit | 28caa74b196553aaafda6d0a881668735d627d82 (patch) | |
tree | 45c69d5ef7d50efd5b45c11037946dd8225dedaf /include/sys/dnode.h | |
parent | 647ff8e975d2087ade05d862eb19a589ab155126 (diff) |
Refactor dnode dirty context from dbuf_dirty
* Add dedicated donde_set_dirtyctx routine.
* Add empty dirty record on destroy assertion.
* Make much more extensive use of the SET_ERROR macro.
Reviewed-by: Will Andrews <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Matthew Ahrens <[email protected]>
Signed-off-by: Matt Macy <[email protected]>
Closes #9924
Diffstat (limited to 'include/sys/dnode.h')
-rw-r--r-- | include/sys/dnode.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/sys/dnode.h b/include/sys/dnode.h index 708e5fc44..3ea7aeb7f 100644 --- a/include/sys/dnode.h +++ b/include/sys/dnode.h @@ -333,7 +333,7 @@ struct dnode { uint64_t dn_dirty_txg; /* txg dnode was last dirtied */ kcondvar_t dn_notxholds; enum dnode_dirtycontext dn_dirtyctx; - uint8_t *dn_dirtyctx_firstset; /* dbg: contents meaningless */ + void *dn_dirtyctx_firstset; /* dbg: contents meaningless */ /* protected by own devices */ zfs_refcount_t dn_tx_holds; @@ -425,6 +425,7 @@ void dnode_rele(dnode_t *dn, void *ref); void dnode_rele_and_unlock(dnode_t *dn, void *tag, boolean_t evicting); int dnode_try_claim(objset_t *os, uint64_t object, int slots); void dnode_setdirty(dnode_t *dn, dmu_tx_t *tx); +void dnode_set_dirtyctx(dnode_t *dn, dmu_tx_t *tx, void *tag); void dnode_sync(dnode_t *dn, dmu_tx_t *tx); void dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs, dmu_object_type_t bonustype, int bonuslen, int dn_slots, dmu_tx_t *tx); |