MCPcopy Create free account
hub / github.com/F-Stack/f-stack / dbuf_noread

Function dbuf_noread

freebsd/contrib/openzfs/module/zfs/dbuf.c:1719–1739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1717}
1718
1719static void
1720dbuf_noread(dmu_buf_impl_t *db)
1721{
1722 ASSERT(!zfs_refcount_is_zero(&db->db_holds));
1723 ASSERT(db->db_blkid != DMU_BONUS_BLKID);
1724 mutex_enter(&db->db_mtx);
1725 while (db->db_state == DB_READ || db->db_state == DB_FILL)
1726 cv_wait(&db->db_changed, &db->db_mtx);
1727 if (db->db_state == DB_UNCACHED) {
1728 ASSERT(db->db_buf == NULL);
1729 ASSERT(db->db.db_data == NULL);
1730 dbuf_set_data(db, dbuf_alloc_arcbuf(db));
1731 db->db_state = DB_FILL;
1732 DTRACE_SET_STATE(db, "assigning filled buffer");
1733 } else if (db->db_state == DB_NOFILL) {
1734 dbuf_clear_data(db);
1735 } else {
1736 ASSERT3U(db->db_state, ==, DB_CACHED);
1737 }
1738 mutex_exit(&db->db_mtx);
1739}
1740
1741void
1742dbuf_unoverride(dbuf_dirty_record_t *dr)

Callers 1

dmu_buf_will_fillFunction · 0.85

Calls 7

zfs_refcount_is_zeroFunction · 0.85
mutex_enterFunction · 0.85
cv_waitFunction · 0.85
dbuf_set_dataFunction · 0.85
dbuf_alloc_arcbufFunction · 0.85
dbuf_clear_dataFunction · 0.85
mutex_exitFunction · 0.85

Tested by

no test coverage detected