Print this page
3752 want more verifiable dbuf user eviction
Submitted by: Justin Gibbs <justing@spectralogic.com>
Submitted by: Will Andrews <willa@spectralogic.com>
*** 519,529 ****
zap_leaf(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
{
char buf[16*1024];
int verbose = B_FALSE;
int four = B_FALSE;
! zap_leaf_t l;
zap_leaf_phys_t *zlp = (void *)buf;
int i;
if (mdb_getopts(argc, argv,
'v', MDB_OPT_SETBITS, TRUE, &verbose,
--- 519,529 ----
zap_leaf(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
{
char buf[16*1024];
int verbose = B_FALSE;
int four = B_FALSE;
! zap_leaf_t l = { 0 };
zap_leaf_phys_t *zlp = (void *)buf;
int i;
if (mdb_getopts(argc, argv,
'v', MDB_OPT_SETBITS, TRUE, &verbose,
*** 1423,1434 ****
typedef struct mdb_spa {
uintptr_t spa_dsl_pool;
uintptr_t spa_root_vdev;
} mdb_spa_t;
typedef struct mdb_dsl_dir {
! uintptr_t dd_phys;
int64_t dd_space_towrite[TXG_SIZE];
} mdb_dsl_dir_t;
typedef struct mdb_dsl_dir_phys {
uint64_t dd_used_bytes;
--- 1423,1443 ----
typedef struct mdb_spa {
uintptr_t spa_dsl_pool;
uintptr_t spa_root_vdev;
} mdb_spa_t;
+ struct mdb_dsl_dir_phys;
+ typedef struct mdb_dsl_dir_dbuf {
+ uint8_t dddb_pad[offsetof(dmu_buf_t, db_data)];
+ uintptr_t dddb_data;
+ } mdb_dsl_dir_dbuf_t;
+
typedef struct mdb_dsl_dir {
! union {
! dmu_buf_t *dd_dmu_db;
! mdb_dsl_dir_dbuf_t *dd_db;
! } dd_db_u;
int64_t dd_space_towrite[TXG_SIZE];
} mdb_dsl_dir_t;
typedef struct mdb_dsl_dir_phys {
uint64_t dd_used_bytes;