From mm@mail2.vx.sk  Wed Apr 28 09:47:07 2010
Return-Path: <mm@mail2.vx.sk>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3911A106566C
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 28 Apr 2010 09:47:07 +0000 (UTC)
	(envelope-from mm@mail2.vx.sk)
Received: from mail2.vx.sk (neo.vx.sk [188.40.111.84])
	by mx1.freebsd.org (Postfix) with ESMTP id C3EA38FC2B
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 28 Apr 2010 09:47:06 +0000 (UTC)
Received: from neo.vx.sk (localhost [127.0.0.1])
	by mail2.vx.sk (Postfix) with ESMTP id EB5BF3A0D7
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 28 Apr 2010 11:47:05 +0200 (CEST)
Received: from mail2.vx.sk ([127.0.0.1])
	by neo.vx.sk (neo.vx.sk [127.0.0.1]) (amavisd-new, port 10024)
	with LMTP id TFabT8p6x7CJ for <FreeBSD-gnats-submit@freebsd.org>;
	Wed, 28 Apr 2010 11:47:01 +0200 (CEST)
Received: by mail2.vx.sk (Postfix, from userid 1001)
	id 10FB13A0D0; Wed, 28 Apr 2010 11:47:00 +0200 (CEST)
Message-Id: <20100428094701.10FB13A0D0@mail2.vx.sk>
Date: Wed, 28 Apr 2010 11:47:00 +0200 (CEST)
From: Martin Matuska <mm@FreeBSD.org>
Reply-To: Martin Matuska <mm@FreeBSD.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [zfs] [patch] fix missing locking variables (onnv 8214)
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         146109
>Category:       kern
>Synopsis:       [zfs] [patch] fix missing locking variables (onnv 8214)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    mm
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 28 09:50:04 UTC 2010
>Closed-Date:    Sun May 30 07:39:04 UTC 2010
>Last-Modified:  Sun May 30 07:39:04 UTC 2010
>Originator:     Martin Matuska
>Release:        FreeBSD 8.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD neo.vx.sk 8.0-STABLE FreeBSD 8.0-STABLE #10 r207271M: Tue Apr 27 21:36:49 CEST 2010 root@neo.vx.sk:/usr/obj/stable/sys/NEO amd64
>Description:
- a small part of changeset in version 8214 was already in our code
- merge missing part of onnv revision 8214 [1]

Source:
OpenSolaris bug-id: 6747934 [1]
Onnv revision: 8214 [1]

>How-To-Repeat:
>Fix:
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c	(revision 207314)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c	(working copy)
@@ -23,8 +23,6 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/zfs_context.h>
 #include <sys/spa.h>
 #include <sys/dmu.h>
@@ -61,6 +59,7 @@
 	bzero(sm, sizeof (*sm));
 
 	cv_init(&sm->sm_load_cv, NULL, CV_DEFAULT, NULL);
+
 	avl_create(&sm->sm_root, space_map_seg_compare,
 	    sizeof (space_seg_t), offsetof(struct space_seg, ss_node));
 
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	(revision 207314)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	(working copy)
@@ -57,6 +57,8 @@
 	rw_init(&dn->dn_struct_rwlock, NULL, RW_DEFAULT, NULL);
 	mutex_init(&dn->dn_mtx, NULL, MUTEX_DEFAULT, NULL);
 	mutex_init(&dn->dn_dbufs_mtx, NULL, MUTEX_DEFAULT, NULL);
+	cv_init(&dn->dn_notxholds, NULL, CV_DEFAULT, NULL);
+
 	refcount_create(&dn->dn_holds);
 	refcount_create(&dn->dn_tx_holds);
 
@@ -86,6 +88,7 @@
 	rw_destroy(&dn->dn_struct_rwlock);
 	mutex_destroy(&dn->dn_mtx);
 	mutex_destroy(&dn->dn_dbufs_mtx);
+	cv_destroy(&dn->dn_notxholds);
 	refcount_destroy(&dn->dn_holds);
 	refcount_destroy(&dn->dn_tx_holds);
 
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c	(revision 207314)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c	(working copy)
@@ -78,6 +78,12 @@
 	cv_init(&tx->tx_quiesce_done_cv, NULL, CV_DEFAULT, NULL);
 	cv_init(&tx->tx_exit_cv, NULL, CV_DEFAULT, NULL);
 
+	cv_init(&tx->tx_sync_more_cv, NULL, CV_DEFAULT, NULL);
+	cv_init(&tx->tx_sync_done_cv, NULL, CV_DEFAULT, NULL);
+	cv_init(&tx->tx_quiesce_more_cv, NULL, CV_DEFAULT, NULL);
+	cv_init(&tx->tx_quiesce_done_cv, NULL, CV_DEFAULT, NULL);
+	cv_init(&tx->tx_exit_cv, NULL, CV_DEFAULT, NULL);
+
 	tx->tx_open_txg = txg;
 }
 
@@ -100,6 +106,12 @@
 	rw_destroy(&tx->tx_suspend);
 	mutex_destroy(&tx->tx_sync_lock);
 
+	cv_destroy(&tx->tx_sync_more_cv);
+	cv_destroy(&tx->tx_sync_done_cv);
+	cv_destroy(&tx->tx_quiesce_more_cv);
+	cv_destroy(&tx->tx_quiesce_done_cv);
+	cv_destroy(&tx->tx_exit_cv);
+
 	for (c = 0; c < max_ncpus; c++) {
 		int i;
 
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->mm 
Responsible-Changed-By: mm 
Responsible-Changed-When: Sun May 30 07:38:34 UTC 2010 
Responsible-Changed-Why:  


http://www.freebsd.org/cgi/query-pr.cgi?pr=146109 
State-Changed-From-To: open->closed 
State-Changed-By: mm 
State-Changed-When: Sun May 30 07:39:03 UTC 2010 
State-Changed-Why:  
Committed with changes. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146109 
>Unformatted:
