summaryrefslogtreecommitdiffstats
path: root/include/sys/dbuf.h
diff options
context:
space:
mode:
authorJustin T. Gibbs <[email protected]>2015-10-13 14:09:45 -0700
committerBrian Behlendorf <[email protected]>2015-10-13 14:12:02 -0700
commitbc4501f75a04ddf9c04cef8332d12b41c35863d5 (patch)
tree9d75f16d15f9331825e40bf55ae64158b1706d3d /include/sys/dbuf.h
parent33df62d052bad11a1ebb220810672fcfba2a8d86 (diff)
Illumos 6267 - dn_bonus evicted too early
6267 dn_bonus evicted too early Reviewed by: Richard Yao <[email protected]> Reviewed by: Xin LI <[email protected]> Reviewed by: Matthew Ahrens <[email protected]> Approved by: Richard Lowe <[email protected]> References: https://www.illumos.org/issues/6267 https://github.com/illumos/illumos-gate/commit/d205810 Signed-off-by: Brian Behlendorf <[email protected]> Ported-by: Ned Bass [email protected] Issue #3865 Issue #3443
Diffstat (limited to 'include/sys/dbuf.h')
-rw-r--r--include/sys/dbuf.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/include/sys/dbuf.h b/include/sys/dbuf.h
index 94d326d57..0d262e87b 100644
--- a/include/sys/dbuf.h
+++ b/include/sys/dbuf.h
@@ -230,9 +230,25 @@ typedef struct dmu_buf_impl {
/* User callback information. */
dmu_buf_user_t *db_user;
- uint8_t db_immediate_evict;
+ /*
+ * Evict user data as soon as the dirty and reference
+ * counts are equal.
+ */
+ uint8_t db_user_immediate_evict;
+
+ /*
+ * This block was freed while a read or write was
+ * active.
+ */
uint8_t db_freed_in_flight;
+ /*
+ * dnode_evict_dbufs() or dnode_evict_bonus() tried to
+ * evict this dbuf, but couldn't due to outstanding
+ * references. Evict once the refcount drops to 0.
+ */
+ uint8_t db_pending_evict;
+
uint8_t db_dirtycnt;
} dmu_buf_impl_t;