Author: pjd
Date: Wed Jul 14 06:37:43 2010
New Revision: 210044
URL: http://svn.freebsd.org/changeset/base/210044

Log:
  MFp4 180933:
  
  Initialize rw_count properly so that zdb(8) doesn't trigger assertion in
  rw_enter():
  
        ASSERT(rwlp->rw_count == 0);
  
  While here, assert that rw_count is 0 when destroying the lock.
  
  MFC after:    1 week

Modified:
  head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c

Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c  Wed Jul 14 
01:55:24 2010        (r210043)
+++ head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c  Wed Jul 14 
06:37:43 2010        (r210044)
@@ -174,11 +174,13 @@ rw_init(krwlock_t *rwlp, char *name, int
        rwlock_init(&rwlp->rw_lock, USYNC_THREAD, NULL);
        rwlp->rw_owner = NULL;
        rwlp->initialized = B_TRUE;
+       rwlp->rw_count = 0;
 }
 
 void
 rw_destroy(krwlock_t *rwlp)
 {
+       ASSERT(rwlp->rw_count == 0);
        rwlock_destroy(&rwlp->rw_lock);
        rwlp->rw_owner = (void *)-1UL;
        rwlp->initialized = B_FALSE;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to