usr/src/cmd/mdb/common/modules/zfs/zfs.c
changeset 2082 76b439ec3ac1
parent 1775 e51e26b432c0
child 2459 7511d9859fcd
--- a/usr/src/cmd/mdb/common/modules/zfs/zfs.c	Tue May 30 15:35:36 2006 -0700
+++ b/usr/src/cmd/mdb/common/modules/zfs/zfs.c	Tue May 30 15:47:16 2006 -0700
@@ -208,73 +208,6 @@
 {
 }
 
-typedef struct dbuf_walk_data {
-	dbuf_hash_table_t ht;
-	int64_t bucket;
-	uintptr_t dbp;
-	dmu_buf_impl_t db;
-} dbuf_walk_data_t;
-
-static int
-dbuf_walk_init(mdb_walk_state_t *wsp)
-{
-	dbuf_walk_data_t *dwd;
-
-	if (wsp->walk_addr != NULL) {
-		mdb_warn("must supply starting address\n");
-		return (WALK_ERR);
-	}
-
-	dwd = mdb_alloc(sizeof (dbuf_walk_data_t), UM_SLEEP);
-
-	if (mdb_readvar(&dwd->ht, "dbuf_hash_table") == -1) {
-		mdb_warn("failed to read 'dbuf_hash_table'");
-		mdb_free(dwd, sizeof (dbuf_walk_data_t));
-		return (WALK_ERR);
-	}
-	dwd->bucket = -1;
-	dwd->dbp = 0;
-	wsp->walk_data = dwd;
-	return (WALK_NEXT);
-}
-
-static int
-dbuf_walk_step(mdb_walk_state_t *wsp)
-{
-	int status;
-	dbuf_walk_data_t *dwd = wsp->walk_data;
-
-	while (dwd->dbp == 0) {
-		dwd->bucket++;
-		if (dwd->bucket == dwd->ht.hash_table_mask+1)
-			return (WALK_DONE);
-
-		if (mdb_vread(&dwd->dbp, sizeof (void *),
-		    (uintptr_t)(dwd->ht.hash_table+dwd->bucket)) == -1) {
-			mdb_warn("failed to read hash bucket %u at %p",
-			    dwd->bucket, dwd->ht.hash_table+dwd->bucket);
-			return (WALK_DONE);
-		}
-	}
-
-	wsp->walk_addr = dwd->dbp;
-	if (mdb_vread(&dwd->db, sizeof (dmu_buf_impl_t),
-	    wsp->walk_addr) == -1) {
-		mdb_warn("failed to read dbuf at %p", wsp->walk_addr);
-		return (WALK_DONE);
-	}
-	status = wsp->walk_callback(wsp->walk_addr, &dwd->db, wsp->walk_cbdata);
-
-	dwd->dbp = (uintptr_t)dwd->db.db_hash_next;
-	return (status);
-}
-
-static void
-dbuf_walk_fini(mdb_walk_state_t *wsp)
-{
-	dbuf_walk_data_t *dwd = wsp->walk_data;
-	mdb_free(dwd, sizeof (dbuf_walk_data_t));
-}
 
 static int
 dataset_name(uintptr_t addr, char *buf)
@@ -693,7 +626,7 @@
 		return (DCMD_ERR);
 	}
 
-	if (mdb_pwalk("dbufs", dbufs_cb, &data, 0) != 0) {
+	if (mdb_pwalk("dmu_buf_impl_t", dbufs_cb, &data, 0) != 0) {
 		mdb_warn("can't walk dbufs");
 		return (DCMD_ERR);
 	}
@@ -1580,8 +1513,6 @@
 	{ LIST_WALK_NAME, LIST_WALK_DESC,
 		list_walk_init, list_walk_step, list_walk_fini },
 #endif
-	{ "dbufs", "walk cached ZFS dbufs",
-		dbuf_walk_init, dbuf_walk_step, dbuf_walk_fini },
 	{ "zms_freelist", "walk ZFS metaslab freelist",
 		freelist_walk_init, freelist_walk_step, freelist_walk_fini },
 	{ "txg_list", "given any txg_list_t *, walk all entries in all txgs",