3747 txg commit callbacks don't work
authorWill Andrews <willa@spectralogic.com>
Tue, 11 Jun 2013 09:13:51 -0800
changeset 14126 0c8d9998d589
parent 14125 4a7f6353bcf0
child 14127 849852750426
3747 txg commit callbacks don't work Reviewed by: Matthew Ahrens <[email protected]> Reviewed by: Eric Schrock <[email protected]> Approved by: Christopher Siden <[email protected]>
usr/src/cmd/ztest/ztest.c
usr/src/uts/common/fs/zfs/txg.c
--- a/usr/src/cmd/ztest/ztest.c	Tue Jun 11 09:13:47 2013 -0800
+++ b/usr/src/cmd/ztest/ztest.c	Tue Jun 11 09:13:51 2013 -0800
@@ -4507,7 +4507,7 @@
 	 */
 	tmp_cb = list_head(&zcl.zcl_callbacks);
 	if (tmp_cb != NULL &&
-	    tmp_cb->zcd_txg > txg - ZTEST_COMMIT_CALLBACK_THRESH) {
+	    (txg - ZTEST_COMMIT_CALLBACK_THRESH) > tmp_cb->zcd_txg) {
 		fatal(0, "Commit callback threshold exceeded, oldest txg: %"
 		    PRIu64 ", open txg: %" PRIu64 "\n", tmp_cb->zcd_txg, txg);
 	}
--- a/usr/src/uts/common/fs/zfs/txg.c	Tue Jun 11 09:13:47 2013 -0800
+++ b/usr/src/uts/common/fs/zfs/txg.c	Tue Jun 11 09:13:51 2013 -0800
@@ -435,7 +435,7 @@
 		list_create(cb_list, sizeof (dmu_tx_callback_t),
 		    offsetof(dmu_tx_callback_t, dcb_node));
 
-		list_move_tail(&tc->tc_callbacks[g], cb_list);
+		list_move_tail(cb_list, &tc->tc_callbacks[g]);
 
 		(void) taskq_dispatch(tx->tx_commit_cb_taskq, (task_func_t *)
 		    txg_do_callbacks, cb_list, TQ_SLEEP);