| 509 | } |
| 510 | |
| 511 | void |
| 512 | dnode_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 | |
| 527 | static void |
| 528 | dnode_undirty_dbufs(list_t *list) |
no test coverage detected