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

Function dnode_evict_bonus

freebsd/contrib/openzfs/module/zfs/dnode_sync.c:511–525  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

509}
510
511void
512dnode_evict_bonus(dnode_t *dn)
513{
514 rw_enter(&dn->dn_struct_rwlock, RW_WRITER);
515 if (dn->dn_bonus != NULL) {
516 if (zfs_refcount_is_zero(&dn->dn_bonus->db_holds)) {
517 mutex_enter(&dn->dn_bonus->db_mtx);
518 dbuf_destroy(dn->dn_bonus);
519 dn->dn_bonus = NULL;
520 } else {
521 dn->dn_bonus->db_pending_evict = TRUE;
522 }
523 }
524 rw_exit(&dn->dn_struct_rwlock);
525}
526
527static void
528dnode_undirty_dbufs(list_t *list)

Callers 3

dbuf_rele_and_unlockFunction · 0.85
dmu_bonus_hold_by_dnodeFunction · 0.85
dnode_evict_dbufsFunction · 0.85

Calls 5

rw_enterFunction · 0.85
zfs_refcount_is_zeroFunction · 0.85
mutex_enterFunction · 0.85
dbuf_destroyFunction · 0.85
rw_exitFunction · 0.85

Tested by

no test coverage detected