Update core ZFS code from build 121 to build 141.
[zfs.git] / module / zfs / vdev_mirror.c
index 836386d..698c027 100644 (file)
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -60,6 +60,11 @@ vdev_mirror_map_free(zio_t *zio)
        kmem_free(mm, offsetof(mirror_map_t, mm_child[mm->mm_children]));
 }
 
+static const zio_vsd_ops_t vdev_mirror_vsd_ops = {
+       vdev_mirror_map_free,
+       zio_vsd_default_cksum_report
+};
+
 static mirror_map_t *
 vdev_mirror_map_alloc(zio_t *zio)
 {
@@ -117,7 +122,7 @@ vdev_mirror_map_alloc(zio_t *zio)
        }
 
        zio->io_vsd = mm;
-       zio->io_vsd_free = vdev_mirror_map_free;
+       zio->io_vsd_ops = &vdev_mirror_vsd_ops;
        return (mm);
 }
 
@@ -209,7 +214,7 @@ vdev_mirror_child_select(zio_t *zio)
        uint64_t txg = zio->io_txg;
        int i, c;
 
-       ASSERT(zio->io_bp == NULL || zio->io_bp->blk_birth == txg);
+       ASSERT(zio->io_bp == NULL || BP_PHYSICAL_BIRTH(zio->io_bp) == txg);
 
        /*
         * Try to find a child whose DTL doesn't contain the block to read.
@@ -447,6 +452,8 @@ vdev_ops_t vdev_mirror_ops = {
        vdev_mirror_io_start,
        vdev_mirror_io_done,
        vdev_mirror_state_change,
+       NULL,
+       NULL,
        VDEV_TYPE_MIRROR,       /* name of this vdev type */
        B_FALSE                 /* not a leaf vdev */
 };
@@ -458,6 +465,8 @@ vdev_ops_t vdev_replacing_ops = {
        vdev_mirror_io_start,
        vdev_mirror_io_done,
        vdev_mirror_state_change,
+       NULL,
+       NULL,
        VDEV_TYPE_REPLACING,    /* name of this vdev type */
        B_FALSE                 /* not a leaf vdev */
 };
@@ -469,6 +478,8 @@ vdev_ops_t vdev_spare_ops = {
        vdev_mirror_io_start,
        vdev_mirror_io_done,
        vdev_mirror_state_change,
+       NULL,
+       NULL,
        VDEV_TYPE_SPARE,        /* name of this vdev type */
        B_FALSE                 /* not a leaf vdev */
 };