]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - module/zfs/dmu_diff.c
Imported Upstream version 0.6.4.2
[mirror_zfs-debian.git] / module / zfs / dmu_diff.c
index a2cb2fc8d811e0cb912b1052a3bb5ac079595a74..30fabbb07957f9566d620e2a1bd8d64430fdb1d2 100644 (file)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
  */
 
 #include <sys/dmu.h>
@@ -107,7 +107,7 @@ report_dnode(struct diffarg *da, uint64_t object, dnode_phys_t *dnp)
 /* ARGSUSED */
 static int
 diff_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
-    const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg)
+    const zbookmark_phys_t *zb, const dnode_phys_t *dnp, void *arg)
 {
        struct diffarg *da = arg;
        int err = 0;
@@ -118,7 +118,7 @@ diff_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
        if (zb->zb_object != DMU_META_DNODE_OBJECT)
                return (0);
 
-       if (bp == NULL) {
+       if (BP_IS_HOLE(bp)) {
                uint64_t span = DBP_SPAN(dnp, zb->zb_level);
                uint64_t dnobj = (zb->zb_blkid * span) >> DNODE_SHIFT;
 
@@ -187,7 +187,7 @@ dmu_diff(const char *tosnap_name, const char *fromsnap_name,
                return (error);
        }
 
-       if (!dsl_dataset_is_before(tosnap, fromsnap)) {
+       if (!dsl_dataset_is_before(tosnap, fromsnap, 0)) {
                dsl_dataset_rele(fromsnap, FTAG);
                dsl_dataset_rele(tosnap, FTAG);
                dsl_pool_rele(dp, FTAG);