diff options
author | Alexander Motin <mav@FreeBSD.org> | 2015-10-14 10:36:43 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2015-10-14 10:36:43 +0000 |
commit | 255a5f2cac4628050327d559e7a797c89367bb57 (patch) | |
tree | 4cfe4d9bd2a720d0ee66253e14b8e8e0c1b7fd31 /uts/common/fs/zfs/sys/dbuf.h | |
parent | eccfba9afc4d1bb7bd05292869b1c491a2c5ce77 (diff) | |
download | src-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.h | 18 |
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; |