aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/dnode.h
diff options
context:
space:
mode:
authorMatthew Macy <[email protected]>2020-02-26 16:09:17 -0800
committerGitHub <[email protected]>2020-02-26 16:09:17 -0800
commit28caa74b196553aaafda6d0a881668735d627d82 (patch)
tree45c69d5ef7d50efd5b45c11037946dd8225dedaf /include/sys/dnode.h
parent647ff8e975d2087ade05d862eb19a589ab155126 (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.h3
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);