Lines Matching refs:db

173 	dmu_buf_impl_t *db;  in dmu_buf_hold_noread_by_dnode()  local
177 db = dbuf_hold(dn, blkid, tag); in dmu_buf_hold_noread_by_dnode()
180 if (db == NULL) { in dmu_buf_hold_noread_by_dnode()
185 *dbp = &db->db; in dmu_buf_hold_noread_by_dnode()
194 dmu_buf_impl_t *db; in dmu_buf_hold_noread() local
202 db = dbuf_hold(dn, blkid, tag); in dmu_buf_hold_noread()
206 if (db == NULL) { in dmu_buf_hold_noread()
211 *dbp = &db->db; in dmu_buf_hold_noread()
229 dmu_buf_impl_t *db = (dmu_buf_impl_t *)(*dbp); in dmu_buf_hold_by_dnode() local
230 err = dbuf_read(db, NULL, db_flags); in dmu_buf_hold_by_dnode()
232 dbuf_rele(db, tag); in dmu_buf_hold_by_dnode()
254 dmu_buf_impl_t *db = (dmu_buf_impl_t *)(*dbp); in dmu_buf_hold() local
255 err = dbuf_read(db, NULL, db_flags); in dmu_buf_hold()
257 dbuf_rele(db, tag); in dmu_buf_hold()
274 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_set_bonus() local
278 DB_DNODE_ENTER(db); in dmu_set_bonus()
279 dn = DB_DNODE(db); in dmu_set_bonus()
281 if (dn->dn_bonus != db) { in dmu_set_bonus()
290 DB_DNODE_EXIT(db); in dmu_set_bonus()
297 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_set_bonustype() local
301 DB_DNODE_ENTER(db); in dmu_set_bonustype()
302 dn = DB_DNODE(db); in dmu_set_bonustype()
306 } else if (dn->dn_bonus != db) { in dmu_set_bonustype()
313 DB_DNODE_EXIT(db); in dmu_set_bonustype()
320 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_get_bonustype() local
324 DB_DNODE_ENTER(db); in dmu_get_bonustype()
325 dn = DB_DNODE(db); in dmu_get_bonustype()
327 DB_DNODE_EXIT(db); in dmu_get_bonustype()
355 dmu_buf_impl_t *db; in dmu_bonus_hold_by_dnode() local
371 db = dn->dn_bonus; in dmu_bonus_hold_by_dnode()
374 if (zfs_refcount_add(&db->db_holds, tag) == 1) { in dmu_bonus_hold_by_dnode()
375 VERIFY(dnode_add_ref(dn, db)); in dmu_bonus_hold_by_dnode()
386 error = dbuf_read(db, NULL, db_flags); in dmu_bonus_hold_by_dnode()
389 dbuf_rele(db, tag); in dmu_bonus_hold_by_dnode()
394 *dbp = &db->db; in dmu_bonus_hold_by_dnode()
406 dmu_buf_impl_t *db; in dmu_bonus_hold_impl() local
426 db = dn->dn_bonus; in dmu_bonus_hold_impl()
429 if (zfs_refcount_add(&db->db_holds, tag) == 1) { in dmu_bonus_hold_impl()
430 VERIFY(dnode_add_ref(dn, db)); in dmu_bonus_hold_impl()
443 error = dbuf_read(db, NULL, db_flags); in dmu_bonus_hold_impl()
446 dbuf_rele(db, tag); in dmu_bonus_hold_impl()
451 *dbp = &db->db; in dmu_bonus_hold_impl()
473 dmu_buf_impl_t *db = NULL; in dmu_spill_hold_by_dnode() local
479 db = dbuf_hold(dn, DMU_SPILL_BLKID, tag); in dmu_spill_hold_by_dnode()
484 ASSERT(db != NULL); in dmu_spill_hold_by_dnode()
485 err = dbuf_read(db, NULL, flags); in dmu_spill_hold_by_dnode()
487 *dbp = &db->db; in dmu_spill_hold_by_dnode()
489 dbuf_rele(db, tag); in dmu_spill_hold_by_dnode()
496 dmu_buf_impl_t *db = (dmu_buf_impl_t *)bonus; in dmu_spill_hold_existing() local
500 DB_DNODE_ENTER(db); in dmu_spill_hold_existing()
501 dn = DB_DNODE(db); in dmu_spill_hold_existing()
518 DB_DNODE_EXIT(db); in dmu_spill_hold_existing()
526 dmu_buf_impl_t *db = (dmu_buf_impl_t *)bonus; in dmu_spill_hold_by_bonus() local
534 DB_DNODE_ENTER(db); in dmu_spill_hold_by_bonus()
535 dn = DB_DNODE(db); in dmu_spill_hold_by_bonus()
537 DB_DNODE_EXIT(db); in dmu_spill_hold_by_bonus()
591 dmu_buf_impl_t *db = dbuf_hold(dn, blkid + i, tag); in dmu_buf_hold_array_by_dnode() local
592 if (db == NULL) { in dmu_buf_hold_array_by_dnode()
601 (void) dbuf_read(db, zio, dbuf_flags); in dmu_buf_hold_array_by_dnode()
602 dbp[i] = &db->db; in dmu_buf_hold_array_by_dnode()
622 dmu_buf_impl_t *db = (dmu_buf_impl_t *)dbp[i]; in dmu_buf_hold_array_by_dnode() local
623 mutex_enter(&db->db_mtx); in dmu_buf_hold_array_by_dnode()
624 while (db->db_state == DB_READ || in dmu_buf_hold_array_by_dnode()
625 db->db_state == DB_FILL) in dmu_buf_hold_array_by_dnode()
626 cv_wait(&db->db_changed, &db->db_mtx); in dmu_buf_hold_array_by_dnode()
627 if (db->db_state == DB_UNCACHED) in dmu_buf_hold_array_by_dnode()
629 mutex_exit(&db->db_mtx); in dmu_buf_hold_array_by_dnode()
666 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_buf_hold_array_by_bonus() local
670 DB_DNODE_ENTER(db); in dmu_buf_hold_array_by_bonus()
671 dn = DB_DNODE(db); in dmu_buf_hold_array_by_bonus()
674 DB_DNODE_EXIT(db); in dmu_buf_hold_array_by_bonus()
1026 dmu_buf_t *db = dbp[i]; in dmu_read_impl() local
1030 bufoff = offset - db->db_offset; in dmu_read_impl()
1031 tocpy = (int)MIN(db->db_size - bufoff, size); in dmu_read_impl()
1033 bcopy((char *)db->db_data + bufoff, buf, tocpy); in dmu_read_impl()
1076 dmu_buf_t *db = dbp[i]; in dmu_write_impl() local
1080 bufoff = offset - db->db_offset; in dmu_write_impl()
1081 tocpy = (int)MIN(db->db_size - bufoff, size); in dmu_write_impl()
1083 ASSERT(i == 0 || i == numbufs-1 || tocpy == db->db_size); in dmu_write_impl()
1085 if (tocpy == db->db_size) in dmu_write_impl()
1086 dmu_buf_will_fill(db, tx); in dmu_write_impl()
1088 dmu_buf_will_dirty(db, tx); in dmu_write_impl()
1090 bcopy(buf, (char *)db->db_data + bufoff, tocpy); in dmu_write_impl()
1092 if (tocpy == db->db_size) in dmu_write_impl()
1093 dmu_buf_fill_done(db, tx); in dmu_write_impl()
1264 dmu_buf_t *db = dbp[i]; in dmu_prealloc() local
1266 dmu_buf_will_not_fill(db, tx); in dmu_prealloc()
1276 dmu_buf_t *db; in dmu_write_embedded() local
1281 FTAG, &db)); in dmu_write_embedded()
1283 dmu_buf_write_embedded(db, in dmu_write_embedded()
1287 dmu_buf_rele(db, FTAG); in dmu_write_embedded()
1436 dmu_buf_t *db = dbp[i]; in dmu_read_uio_dnode() local
1440 bufoff = uio->uio_loffset - db->db_offset; in dmu_read_uio_dnode()
1441 tocpy = (int)MIN(db->db_size - bufoff, size); in dmu_read_uio_dnode()
1444 dmu_buf_impl_t *dbi = (dmu_buf_impl_t *)db; in dmu_read_uio_dnode()
1458 err = uiomove((char *)db->db_data + bufoff, tocpy, in dmu_read_uio_dnode()
1483 dmu_buf_impl_t *db = (dmu_buf_impl_t *)zdb; in dmu_read_uio_dbuf() local
1490 DB_DNODE_ENTER(db); in dmu_read_uio_dbuf()
1491 dn = DB_DNODE(db); in dmu_read_uio_dbuf()
1493 DB_DNODE_EXIT(db); in dmu_read_uio_dbuf()
1539 dmu_buf_t *db = dbp[i]; in dmu_write_uio_dnode() local
1543 bufoff = uio->uio_loffset - db->db_offset; in dmu_write_uio_dnode()
1544 tocpy = (int)MIN(db->db_size - bufoff, size); in dmu_write_uio_dnode()
1546 ASSERT(i == 0 || i == numbufs-1 || tocpy == db->db_size); in dmu_write_uio_dnode()
1548 if (tocpy == db->db_size) in dmu_write_uio_dnode()
1549 dmu_buf_will_fill(db, tx); in dmu_write_uio_dnode()
1551 dmu_buf_will_dirty(db, tx); in dmu_write_uio_dnode()
1559 err = uiomove((char *)db->db_data + bufoff, tocpy, in dmu_write_uio_dnode()
1562 if (tocpy == db->db_size) in dmu_write_uio_dnode()
1563 dmu_buf_fill_done(db, tx); in dmu_write_uio_dnode()
1588 dmu_buf_impl_t *db = (dmu_buf_impl_t *)zdb; in dmu_write_uio_dbuf() local
1595 DB_DNODE_ENTER(db); in dmu_write_uio_dbuf()
1596 dn = DB_DNODE(db); in dmu_write_uio_dbuf()
1598 DB_DNODE_EXIT(db); in dmu_write_uio_dbuf()
1648 dmu_buf_t *db = dbp[i]; in dmu_write_pages() local
1652 ASSERT3U(db->db_size, >=, PAGESIZE); in dmu_write_pages()
1654 bufoff = offset - db->db_offset; in dmu_write_pages()
1655 tocpy = (int)MIN(db->db_size - bufoff, size); in dmu_write_pages()
1657 ASSERT(i == 0 || i == numbufs-1 || tocpy == db->db_size); in dmu_write_pages()
1659 if (tocpy == db->db_size) in dmu_write_pages()
1660 dmu_buf_will_fill(db, tx); in dmu_write_pages()
1662 dmu_buf_will_dirty(db, tx); in dmu_write_pages()
1665 ASSERT3U(pp->p_offset, ==, db->db_offset + bufoff); in dmu_write_pages()
1668 bcopy(va, (char *)db->db_data + bufoff, thiscpy); in dmu_write_pages()
1674 if (tocpy == db->db_size) in dmu_write_pages()
1675 dmu_buf_fill_done(db, tx); in dmu_write_pages()
1691 dmu_buf_impl_t *db = (dmu_buf_impl_t *)handle; in dmu_request_arcbuf() local
1693 return (arc_loan_buf(db->db_objset->os_spa, B_FALSE, size)); in dmu_request_arcbuf()
1765 dmu_buf_impl_t *db; in dmu_assign_arcbuf_by_dnode() local
1773 db = dbuf_hold(dn, blkid, FTAG); in dmu_assign_arcbuf_by_dnode()
1774 if (db == NULL) in dmu_assign_arcbuf_by_dnode()
1782 if (offset == db->db.db_offset && blksz == db->db.db_size) { in dmu_assign_arcbuf_by_dnode()
1783 dbuf_assign_arcbuf(db, buf, tx); in dmu_assign_arcbuf_by_dnode()
1784 dbuf_rele(db, FTAG); in dmu_assign_arcbuf_by_dnode()
1792 dbuf_rele(db, FTAG); in dmu_assign_arcbuf_by_dnode()
1827 dmu_buf_t *db = dsa->dsa_zgd->zgd_db; in dmu_sync_ready() local
1836 BP_SET_LSIZE(bp, db->db_size); in dmu_sync_ready()
1856 dmu_buf_impl_t *db = dr->dr_dbuf; in dmu_sync_done() local
1867 mutex_enter(&db->db_mtx); in dmu_sync_done()
1877 VERIFY(BP_EQUAL(bp, db->db_blkptr)); in dmu_sync_done()
1902 cv_broadcast(&db->db_changed); in dmu_sync_done()
1903 mutex_exit(&db->db_mtx); in dmu_sync_done()
2030 dmu_buf_impl_t *db = (dmu_buf_impl_t *)zgd->zgd_db; in dmu_sync() local
2031 objset_t *os = db->db_objset; in dmu_sync()
2043 db->db.db_object, db->db_level, db->db_blkid); in dmu_sync()
2045 DB_DNODE_ENTER(db); in dmu_sync()
2046 dn = DB_DNODE(db); in dmu_sync()
2047 dmu_write_policy(os, dn, db->db_level, WP_DMU_SYNC, &zp); in dmu_sync()
2048 DB_DNODE_EXIT(db); in dmu_sync()
2062 mutex_enter(&db->db_mtx); in dmu_sync()
2068 mutex_exit(&db->db_mtx); in dmu_sync()
2077 mutex_exit(&db->db_mtx); in dmu_sync()
2081 dr = db->db_last_dirty; in dmu_sync()
2090 mutex_exit(&db->db_mtx); in dmu_sync()
2096 if (db->db_blkptr != NULL) { in dmu_sync()
2108 *zgd->zgd_bp = *db->db_blkptr; in dmu_sync()
2133 DB_DNODE_ENTER(db); in dmu_sync()
2134 dn = DB_DNODE(db); in dmu_sync()
2135 if (dr->dr_next != NULL || dnode_block_freed(dn, db->db_blkid)) in dmu_sync()
2137 DB_DNODE_EXIT(db); in dmu_sync()
2147 mutex_exit(&db->db_mtx); in dmu_sync()
2153 mutex_exit(&db->db_mtx); in dmu_sync()
2162 zgd->zgd_bp, dr->dt.dl.dr_data, DBUF_IS_L2CACHEABLE(db), in dmu_sync()
2516 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_object_info_from_db() local
2518 DB_DNODE_ENTER(db); in dmu_object_info_from_db()
2519 dmu_object_info_from_dnode(DB_DNODE(db), doi); in dmu_object_info_from_db()
2520 DB_DNODE_EXIT(db); in dmu_object_info_from_db()
2531 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_object_size_from_db() local
2534 DB_DNODE_ENTER(db); in dmu_object_size_from_db()
2535 dn = DB_DNODE(db); in dmu_object_size_from_db()
2541 DB_DNODE_EXIT(db); in dmu_object_size_from_db()
2547 dmu_buf_impl_t *db = (dmu_buf_impl_t *)db_fake; in dmu_object_dnsize_from_db() local
2550 DB_DNODE_ENTER(db); in dmu_object_dnsize_from_db()
2551 dn = DB_DNODE(db); in dmu_object_dnsize_from_db()
2553 DB_DNODE_EXIT(db); in dmu_object_dnsize_from_db()