>Number:         146109
>Category:       kern
>Synopsis:       [zfs] [patch] fix missing locking variables (onnv 8214)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 28 09:50:04 UTC 2010
>Closed-Date:
>Last-Modified:
>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 [email protected]:/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:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to