Lines Matching defs:db

42 	dmu_buf_impl_t *db;
56 db = dbuf_hold_level(dn, dn->dn_phys->dn_nlevels, 0, FTAG);
57 ASSERT(db != NULL);
64 (void) dbuf_read(db, NULL, DB_RF_MUST_SUCCEED|DB_RF_HAVESTRUCT);
65 ASSERT(db->db.db_data);
66 ASSERT(arc_released(db->db_buf));
67 ASSERT3U(sizeof (blkptr_t) * nblkptr, <=, db->db.db_size);
68 bcopy(dn->dn_phys->dn_blkptr, db->db.db_data,
70 arc_buf_freeze(db->db_buf);
85 ASSERT(child->db_parent->db_level == db->db_level);
94 child->db_parent = db;
95 dbuf_add_ref(db, child);
96 if (db->db.db_data)
97 child->db_blkptr = (blkptr_t *)db->db.db_data + i;
108 dbuf_rele(db, FTAG);
155 free_verify(dmu_buf_impl_t *db, uint64_t start, uint64_t end, dmu_tx_t *tx)
162 DB_DNODE_ENTER(db);
163 dn = DB_DNODE(db);
165 off = start - (db->db_blkid * 1<<epbs);
170 ASSERT3U(db->db_level, >, 0);
171 ASSERT3U(db->db.db_size, ==, 1 << dn->dn_phys->dn_indblkshift);
172 ASSERT3U(off+num, <=, db->db.db_size >> SPA_BLKPTRSHIFT);
173 ASSERT(db->db_blkptr != NULL);
181 ASSERT(db->db_level == 1);
184 err = dbuf_hold_impl(dn, db->db_level-1,
185 (db->db_blkid << epbs) + i, TRUE, FALSE, FTAG, &child);
199 for (j = 0; j < child->db.db_size >> 3; j++) {
213 buf = child->db.db_data;
216 for (j = 0; j < child->db.db_size >> 3; j++) {
228 DB_DNODE_EXIT(db);
233 free_children(dmu_buf_impl_t *db, uint64_t blkid, uint64_t nblks,
248 if (db->db_state != DB_CACHED)
249 (void) dbuf_read(db, NULL, DB_RF_MUST_SUCCEED);
251 dbuf_release_bp(db);
252 bp = db->db.db_data;
254 DB_DNODE_ENTER(db);
255 dn = DB_DNODE(db);
258 shift = (db->db_level - 1) * epbs;
259 dbstart = db->db_blkid << epbs;
266 dbend = ((db->db_blkid + 1) << epbs) - 1;
273 if (db->db_level == 1) {
274 FREE_VERIFY(db, start, end, tx);
281 VERIFY0(dbuf_hold_impl(dn, db->db_level - 1,
292 for (i = 0, bp = db->db.db_data; i < 1 << epbs; i++, bp++) {
303 bzero(db->db.db_data, db->db.db_size);
305 free_blocks(dn, db->db_blkptr, 1, tx);
311 ASSERT(db->db_dirtycnt > 0);
314 DB_DNODE_EXIT(db);
315 arc_buf_freeze(db->db_buf);
352 dmu_buf_impl_t *db;
361 TRUE, FALSE, FTAG, &db));
364 free_children(db, blkid, nblks, tx);
365 dbuf_rele(db, FTAG);
403 dmu_buf_impl_t *db, *db_next;
406 for (db = avl_first(&dn->dn_dbufs); db != NULL; db = db_next) {
409 DB_DNODE_ENTER(db);
410 ASSERT3P(DB_DNODE(db), ==, dn);
411 DB_DNODE_EXIT(db);
414 mutex_enter(&db->db_mtx);
415 if (db->db_state != DB_EVICTING &&
416 refcount_is_zero(&db->db_holds)) {
417 db_marker.db_level = db->db_level;
418 db_marker.db_blkid = db->db_blkid;
420 avl_insert_here(&dn->dn_dbufs, &db_marker, db,
423 dbuf_destroy(db);
428 db->db_pending_evict = TRUE;
429 mutex_exit(&db->db_mtx);
430 db_next = AVL_NEXT(&dn->dn_dbufs, db);
460 dmu_buf_impl_t *db = dr->dr_dbuf;
463 if (db->db_level != 0)
466 mutex_enter(&db->db_mtx);
469 ASSERT(db->db_last_dirty == dr);
470 db->db_last_dirty = NULL;
471 db->db_dirtycnt -= 1;
472 if (db->db_level == 0) {
473 ASSERT(db->db_blkid == DMU_BONUS_BLKID ||
474 dr->dt.dl.dr_data == db->db_buf);
481 dbuf_rele_and_unlock(db, (void *)(uintptr_t)txg);
523 dmu_buf_will_dirty(&dn->dn_dbuf->db, tx);