]> granicus.if.org Git - zfs/commitdiff
Fix proper list node initialization
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 13 Jan 2009 23:31:58 +0000 (15:31 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 13 Jan 2009 23:31:58 +0000 (15:31 -0800)
module/zfs/arc.c
module/zfs/dbuf.c
module/zfs/dsl_dataset.c

index 73aecb2852d5282d1c1c9551ee0e51ba50a612b4..19ec2d3d163de1013b0c56a3560bd5dc5fd8c05e 100644 (file)
@@ -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);
 
        /*
index f5f5daa3e4d517c8601013484946e0288985f29a..58ece9753ab75dabffc891508fa1fc136e132df9 100644 (file)
@@ -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);
 }
 
index 93ea8aa11173143d2cf963e6136c7b02b99b9d8e..d7a963f879dcfbec169d57b6be3dea75eb208a7e 100644 (file)
@@ -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);