From 94944fab9618494c745bed4407b165de51808ceb Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Tue, 13 Jan 2009 15:31:58 -0800
Subject: [PATCH] Fix proper list node initialization

---
 module/zfs/arc.c         | 3 +++
 module/zfs/dbuf.c        | 1 +
 module/zfs/dsl_dataset.c | 1 +
 3 files changed, 5 insertions(+)

diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index 73aecb2852..19ec2d3d16 100644
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -755,6 +755,8 @@ hdr_cons(void *vbuf, void *unused, int kmflag)
 	refcount_create(&buf->b_refcnt);
 	cv_init(&buf->b_cv, NULL, CV_DEFAULT, NULL);
 	mutex_init(&buf->b_freeze_lock, NULL, MUTEX_DEFAULT, NULL);
+	list_link_init(&buf->b_arc_node);
+	list_link_init(&buf->b_l2node);
 
 	ARCSTAT_INCR(arcstat_hdr_size, HDR_SIZE);
 	return (0);
@@ -4352,6 +4354,7 @@ l2arc_add_vdev(spa_t *spa, vdev_t *vd, uint64_t start, uint64_t end)
 	adddev->l2ad_hand = adddev->l2ad_start;
 	adddev->l2ad_evict = adddev->l2ad_start;
 	adddev->l2ad_first = B_TRUE;
+	list_link_init(&adddev->l2ad_node);
 	ASSERT3U(adddev->l2ad_write, >, 0);
 
 	/*
diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c
index f5f5daa3e4..58ece9753a 100644
--- a/module/zfs/dbuf.c
+++ b/module/zfs/dbuf.c
@@ -58,6 +58,7 @@ dbuf_cons(void *vdb, void *unused, int kmflag)
 	mutex_init(&db->db_mtx, NULL, MUTEX_DEFAULT, NULL);
 	cv_init(&db->db_changed, NULL, CV_DEFAULT, NULL);
 	refcount_create(&db->db_holds);
+	list_link_init(&db->db_link);
 	return (0);
 }
 
diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c
index 93ea8aa111..d7a963f879 100644
--- a/module/zfs/dsl_dataset.c
+++ b/module/zfs/dsl_dataset.c
@@ -357,6 +357,7 @@ dsl_dataset_get_ref(dsl_pool_t *dp, uint64_t dsobj, void *tag,
 		ds->ds_dbuf = dbuf;
 		ds->ds_object = dsobj;
 		ds->ds_phys = dbuf->db_data;
+		list_link_init(&ds->ds_synced_link);
 
 		mutex_init(&ds->ds_lock, NULL, MUTEX_DEFAULT, NULL);
 		mutex_init(&ds->ds_opening_lock, NULL, MUTEX_DEFAULT, NULL);