aboutsummaryrefslogtreecommitdiff
path: root/uts/common/fs/zfs/sys/dbuf.h
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2015-10-14 10:36:43 +0000
committerAlexander Motin <mav@FreeBSD.org>2015-10-14 10:36:43 +0000
commit255a5f2cac4628050327d559e7a797c89367bb57 (patch)
tree4cfe4d9bd2a720d0ee66253e14b8e8e0c1b7fd31 /uts/common/fs/zfs/sys/dbuf.h
parenteccfba9afc4d1bb7bd05292869b1c491a2c5ce77 (diff)
downloadsrc-255a5f2cac4628050327d559e7a797c89367bb57.tar.gz
src-255a5f2cac4628050327d559e7a797c89367bb57.zip
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> Author: Justin T. Gibbs <gibbs@FreeBSD.org> illumos/illumos-gate@d2058105c61ec61df3a2dd3f839fed8c3fe7bfd6
Notes
Notes: svn path=/vendor-sys/illumos/dist/; revision=289308
Diffstat (limited to 'uts/common/fs/zfs/sys/dbuf.h')
-rw-r--r--uts/common/fs/zfs/sys/dbuf.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/uts/common/fs/zfs/sys/dbuf.h b/uts/common/fs/zfs/sys/dbuf.h
index 482ccb01dacb..233d541342ad 100644
--- a/uts/common/fs/zfs/sys/dbuf.h
+++ b/uts/common/fs/zfs/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;