Print this page
3752 want more verifiable dbuf user eviction
Submitted by:   Justin Gibbs <justing@spectralogic.com>
Submitted by:   Will Andrews <willa@spectralogic.com>

*** 215,228 **** */ list_node_t db_link; /* Data which is unique to data (leaf) blocks: */ ! /* stuff we store for the user (see dmu_buf_set_user) */ ! void *db_user_ptr; ! void **db_user_data_ptr_ptr; ! dmu_buf_evict_func_t *db_evict_func; uint8_t db_immediate_evict; uint8_t db_freed_in_flight; uint8_t db_dirtycnt; --- 215,226 ---- */ list_node_t db_link; /* Data which is unique to data (leaf) blocks: */ ! /* User callback information. See dmu_buf_set_user(). */ ! dmu_buf_user_t *db_user; uint8_t db_immediate_evict; uint8_t db_freed_in_flight; uint8_t db_dirtycnt;
*** 271,282 **** void dmu_buf_fill_done(dmu_buf_t *db, dmu_tx_t *tx); void dbuf_assign_arcbuf(dmu_buf_impl_t *db, arc_buf_t *buf, dmu_tx_t *tx); dbuf_dirty_record_t *dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx); arc_buf_t *dbuf_loan_arcbuf(dmu_buf_impl_t *db); ! void dbuf_clear(dmu_buf_impl_t *db); ! void dbuf_evict(dmu_buf_impl_t *db); void dbuf_setdirty(dmu_buf_impl_t *db, dmu_tx_t *tx); void dbuf_unoverride(dbuf_dirty_record_t *dr); void dbuf_sync_list(list_t *list, dmu_tx_t *tx); void dbuf_release_bp(dmu_buf_impl_t *db); --- 269,280 ---- void dmu_buf_fill_done(dmu_buf_t *db, dmu_tx_t *tx); void dbuf_assign_arcbuf(dmu_buf_impl_t *db, arc_buf_t *buf, dmu_tx_t *tx); dbuf_dirty_record_t *dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx); arc_buf_t *dbuf_loan_arcbuf(dmu_buf_impl_t *db); ! void dbuf_clear(dmu_buf_impl_t *db, list_t *evict_list_p); ! void dbuf_evict(dmu_buf_impl_t *db, list_t *evict_list_p); void dbuf_setdirty(dmu_buf_impl_t *db, dmu_tx_t *tx); void dbuf_unoverride(dbuf_dirty_record_t *dr); void dbuf_sync_list(list_t *list, dmu_tx_t *tx); void dbuf_release_bp(dmu_buf_impl_t *db);