aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>2015-10-13 14:09:45 -0700
committerBrian Behlendorf <behlendorf1@llnl.gov>2015-10-13 14:12:02 -0700
commitbc4501f75a04ddf9c04cef8332d12b41c35863d5 (patch)
tree9d75f16d15f9331825e40bf55ae64158b1706d3d /include
parent33df62d052bad11a1ebb220810672fcfba2a8d86 (diff)
Illumos 6267 - dn_bonus evicted too early
6267 dn_bonus evicted too early Reviewed by: Richard Yao <ryao@gentoo.org> Reviewed by: Xin LI <delphij@freebsd.org> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net> References: https://www.illumos.org/issues/6267 https://github.com/illumos/illumos-gate/commit/d205810 Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported-by: Ned Bass bass6@llnl.gov Issue #3865 Issue #3443
Diffstat (limited to 'include')
-rw-r--r--include/sys/dbuf.h18
-rw-r--r--include/sys/dmu_objset.h1
2 files changed, 17 insertions, 2 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;
diff --git a/include/sys/dmu_objset.h b/include/sys/dmu_objset.h
index bee4bbcfc..837a0d510 100644
--- a/include/sys/dmu_objset.h
+++ b/include/sys/dmu_objset.h
@@ -93,7 +93,6 @@ struct objset {
uint8_t os_copies;
enum zio_checksum os_dedup_checksum;
boolean_t os_dedup_verify;
- boolean_t os_evicting;
zfs_logbias_op_t os_logbias;
zfs_cache_type_t os_primary_cache;
zfs_cache_type_t os_secondary_cache;