6719934 assertion failed: ((&zh->zh_log)->blk_birth == 0), file: ../../common/fs/zfs/zil.c, line: 1336
authorperrin
Thu, 24 Jul 2008 11:23:47 -0700
changeset 7181 8d299641aa23
parent 7180 c573b4b221ef
child 7182 30fd179c7fc1
6719934 assertion failed: ((&zh->zh_log)->blk_birth == 0), file: ../../common/fs/zfs/zil.c, line: 1336 6724738 ztest fails assertion in txg_list_destroy(): txg_list_empty(tl, t)
usr/src/uts/common/fs/zfs/sys/zio.h
usr/src/uts/common/fs/zfs/zil.c
usr/src/uts/common/fs/zfs/zio.c
--- a/usr/src/uts/common/fs/zfs/sys/zio.h	Thu Jul 24 11:17:28 2008 -0700
+++ b/usr/src/uts/common/fs/zfs/sys/zio.h	Thu Jul 24 11:23:47 2008 -0700
@@ -300,9 +300,9 @@
     zio_done_func_t *ready, zio_done_func_t *done, void *private, int priority,
     int flags, const zbookmark_t *zb);
 
-extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, int checksum, blkptr_t *bp,
-    void *data, uint64_t size, zio_done_func_t *done, void *private,
-    int priority, int flags, zbookmark_t *zb);
+extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, int checksum, uint64_t txg,
+    blkptr_t *bp, void *data, uint64_t size, zio_done_func_t *done,
+    void *private, int priority, int flags, zbookmark_t *zb);
 
 extern zio_t *zio_free(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
     zio_done_func_t *done, void *private);
--- a/usr/src/uts/common/fs/zfs/zil.c	Thu Jul 24 11:17:28 2008 -0700
+++ b/usr/src/uts/common/fs/zfs/zil.c	Thu Jul 24 11:23:47 2008 -0700
@@ -662,7 +662,7 @@
 	}
 	if (lwb->lwb_zio == NULL) {
 		lwb->lwb_zio = zio_rewrite(zilog->zl_root_zio, zilog->zl_spa,
-		    ZIO_CHECKSUM_ZILOG, &lwb->lwb_blk, lwb->lwb_buf,
+		    ZIO_CHECKSUM_ZILOG, 0, &lwb->lwb_blk, lwb->lwb_buf,
 		    lwb->lwb_sz, zil_lwb_write_done, lwb,
 		    ZIO_PRIORITY_LOG_WRITE, ZIO_FLAG_CANFAIL, &zb);
 	}
@@ -1337,7 +1337,6 @@
 		 */
 		while (zilog->zl_suspending)
 			cv_wait(&zilog->zl_cv_suspend, &zilog->zl_lock);
-		ASSERT(BP_IS_HOLE(&zh->zh_log));
 		mutex_exit(&zilog->zl_lock);
 		return (0);
 	}
--- a/usr/src/uts/common/fs/zfs/zio.c	Thu Jul 24 11:17:28 2008 -0700
+++ b/usr/src/uts/common/fs/zfs/zio.c	Thu Jul 24 11:23:47 2008 -0700
@@ -543,13 +543,13 @@
 }
 
 zio_t *
-zio_rewrite(zio_t *pio, spa_t *spa, int checksum, blkptr_t *bp, void *data,
-    uint64_t size, zio_done_func_t *done, void *private, int priority,
-    int flags, zbookmark_t *zb)
+zio_rewrite(zio_t *pio, spa_t *spa, int checksum, uint64_t txg,
+    blkptr_t *bp, void *data, uint64_t size, zio_done_func_t *done,
+    void *private, int priority, int flags, zbookmark_t *zb)
 {
 	zio_t *zio;
 
-	zio = zio_create(pio, spa, bp->blk_birth, bp, data, size, done, private,
+	zio = zio_create(pio, spa, txg, bp, data, size, done, private,
 	    ZIO_TYPE_WRITE, priority, flags | ZIO_FLAG_USER,
 	    ZIO_STAGE_OPEN, ZIO_REWRITE_PIPELINE(bp));
 
@@ -1521,10 +1521,10 @@
 		ASSERT(i < SPA_GBH_NBLKPTRS);
 		ASSERT(!BP_IS_HOLE(gbp));
 
-		zio_nowait(zio_rewrite(zio, zio->io_spa, zio->io_checksum, gbp,
-		    (char *)zio->io_data + loff, lsize, NULL, NULL,
-		    zio->io_priority, zio->io_flags & ZIO_FLAG_GANG_INHERIT,
-		    &zio->io_bookmark));
+		zio_nowait(zio_rewrite(zio, zio->io_spa, zio->io_checksum,
+		    zio->io_txg, gbp, (char *)zio->io_data + loff, lsize,
+		    NULL, NULL, zio->io_priority,
+		    zio->io_flags & ZIO_FLAG_GANG_INHERIT, &zio->io_bookmark));
 	}
 
 	zio_push_transform(zio, gbh, gsize, gbufsize);
@@ -1670,8 +1670,8 @@
 			BP_SET_PSIZE(gbp, lsize);
 			BP_SET_COMPRESS(gbp, ZIO_COMPRESS_OFF);
 			gbp->blk_birth = txg;
-			zio_nowait(zio_rewrite(zio, spa, zio->io_checksum, gbp,
-			    (char *)zio->io_data + loff, lsize,
+			zio_nowait(zio_rewrite(zio, spa, zio->io_checksum, txg,
+			    gbp, (char *)zio->io_data + loff, lsize,
 			    zio_write_allocate_gang_member_done, NULL,
 			    zio->io_priority,
 			    zio->io_flags & ZIO_FLAG_GANG_INHERIT,