usr/src/uts/common/fs/zfs/dbuf.c
changeset 2417 694d5de97348
parent 2391 2fa3fd1db808
child 2688 12e2ad22b970
--- a/usr/src/uts/common/fs/zfs/dbuf.c	Sat Jul 22 09:11:10 2006 -0700
+++ b/usr/src/uts/common/fs/zfs/dbuf.c	Sat Jul 22 14:30:52 2006 -0700
@@ -1282,6 +1282,9 @@
 {
 	int nlevels, epbs;
 
+	*parentp = NULL;
+	*bpp = NULL;
+
 	ASSERT(blkid != DB_BONUS_BLKID);
 
 	if (dn->dn_phys->dn_nlevels == 0)
@@ -1296,8 +1299,6 @@
 	if (level >= nlevels ||
 	    (blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))) {
 		/* the buffer has no parent yet */
-		*parentp = NULL;
-		*bpp = NULL;
 		return (ENOENT);
 	} else if (level < nlevels-1) {
 		/* this block is referenced from an indirect block */
@@ -1478,6 +1479,7 @@
 			return;
 		}
 		mutex_exit(&db->db_mtx);
+		db = NULL;
 	}
 
 	if (dbuf_findbp(dn, 0, blkid, TRUE, &db, &bp) == 0) {