diff options
author | Justin T. Gibbs <gibbs@FreeBSD.org> | 2015-10-13 14:09:45 -0700 |
---|---|---|
committer | Brian Behlendorf <behlendorf1@llnl.gov> | 2015-10-13 14:12:02 -0700 |
commit | bc4501f75a04ddf9c04cef8332d12b41c35863d5 (patch) | |
tree | 9d75f16d15f9331825e40bf55ae64158b1706d3d /include | |
parent | 33df62d052bad11a1ebb220810672fcfba2a8d86 (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.h | 18 | ||||
-rw-r--r-- | include/sys/dmu_objset.h | 1 |
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; |