summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
index 9275601..9102322c 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
@@ -70,12 +70,6 @@ dbuf_cons(void *vdb, void *unused, int kmflag)
cv_init(&db->db_changed, NULL, CV_DEFAULT, NULL);
refcount_create(&db->db_holds);
-#if defined(illumos) || !defined(_KERNEL)
- db->db_creation = gethrtime();
-#else
- db->db_creation = cpu_ticks() ^ ((uint64_t)CPU_SEQID << 48);
-#endif
-
return (0);
}
@@ -182,7 +176,7 @@ dbuf_hash_insert(dmu_buf_impl_t *db)
db->db_hash_next = h->hash_table[idx];
h->hash_table[idx] = db;
mutex_exit(DBUF_HASH_MUTEX(h, idx));
- atomic_add_64(&dbuf_hash_count, 1);
+ atomic_inc_64(&dbuf_hash_count);
return (NULL);
}
@@ -216,7 +210,7 @@ dbuf_hash_remove(dmu_buf_impl_t *db)
*dbp = db->db_hash_next;
db->db_hash_next = NULL;
mutex_exit(DBUF_HASH_MUTEX(h, idx));
- atomic_add_64(&dbuf_hash_count, -1);
+ atomic_dec_64(&dbuf_hash_count);
}
static arc_evict_func_t dbuf_do_evict;
@@ -823,7 +817,7 @@ dbuf_free_range(dnode_t *dn, uint64_t start_blkid, uint64_t end_blkid,
db_search.db_level = 0;
db_search.db_blkid = start_blkid;
- db_search.db_creation = 0;
+ db_search.db_state = DB_SEARCH;
mutex_enter(&dn->dn_dbufs_mtx);
if (start_blkid >= dn->dn_unlisted_l0_blkid) {
@@ -1609,7 +1603,7 @@ dbuf_clear(dmu_buf_impl_t *db)
dndb = dn->dn_dbuf;
if (db->db_blkid != DMU_BONUS_BLKID && MUTEX_HELD(&dn->dn_dbufs_mtx)) {
avl_remove(&dn->dn_dbufs, db);
- (void) atomic_dec_32_nv(&dn->dn_dbufs_count);
+ atomic_dec_32(&dn->dn_dbufs_count);
membar_producer();
DB_DNODE_EXIT(db);
/*
@@ -1785,7 +1779,7 @@ dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
ASSERT(dn->dn_object == DMU_META_DNODE_OBJECT ||
refcount_count(&dn->dn_holds) > 0);
(void) refcount_add(&dn->dn_holds, db);
- (void) atomic_inc_32_nv(&dn->dn_dbufs_count);
+ atomic_inc_32(&dn->dn_dbufs_count);
dprintf_dbuf(db, "db=%p\n", db);
@@ -1831,7 +1825,7 @@ dbuf_destroy(dmu_buf_impl_t *db)
dn = DB_DNODE(db);
mutex_enter(&dn->dn_dbufs_mtx);
avl_remove(&dn->dn_dbufs, db);
- (void) atomic_dec_32_nv(&dn->dn_dbufs_count);
+ atomic_dec_32(&dn->dn_dbufs_count);
mutex_exit(&dn->dn_dbufs_mtx);
DB_DNODE_EXIT(db);
/*
@@ -2115,7 +2109,7 @@ dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag)
* until the move completes.
*/
DB_DNODE_ENTER(db);
- (void) atomic_dec_32_nv(&DB_DNODE(db)->dn_dbufs_count);
+ atomic_dec_32(&DB_DNODE(db)->dn_dbufs_count);
DB_DNODE_EXIT(db);
/*
* The bonus buffer's dnode hold is no longer discounted
OpenPOWER on IntegriCloud