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,11 +519,11 @@
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_t l = { 0 };
zap_leaf_phys_t *zlp = (void *)buf;
int i;
if (mdb_getopts(argc, argv,
'v', MDB_OPT_SETBITS, TRUE, &verbose,
@@ -1423,12 +1423,21 @@
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 {
- uintptr_t dd_phys;
+ 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;