Module Name:    src
Committed By:   mrg
Date:           Wed May 11 03:23:26 UTC 2011

Modified Files:
        src/sys/dev/raidframe: rf_paritylog.c rf_paritylog.h
            rf_paritylogDiskMgr.c rf_paritylogging.c

Log Message:
convert parityLogDiskQueue.mutex to a kmutex/cv.

XXX: some splbio() usage to clean up here


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/raidframe/rf_paritylog.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/raidframe/rf_paritylog.h
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/raidframe/rf_paritylogDiskMgr.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/raidframe/rf_paritylogging.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/raidframe/rf_paritylog.c
diff -u src/sys/dev/raidframe/rf_paritylog.c:1.14 src/sys/dev/raidframe/rf_paritylog.c:1.15
--- src/sys/dev/raidframe/rf_paritylog.c:1.14	Tue May 10 07:04:17 2011
+++ src/sys/dev/raidframe/rf_paritylog.c	Wed May 11 03:23:26 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_paritylog.c,v 1.14 2011/05/10 07:04:17 mrg Exp $	*/
+/*	$NetBSD: rf_paritylog.c,v 1.15 2011/05/11 03:23:26 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylog.c,v 1.14 2011/05/10 07:04:17 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylog.c,v 1.15 2011/05/11 03:23:26 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -67,13 +67,13 @@
 	 * free list (rf_parityLogDiskQueue.freeCommonList).  If the free list
 	 * is empty, call RF_Malloc to create a new structure. NON-BLOCKING */
 
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	if (raidPtr->parityLogDiskQueue.freeCommonList) {
 		common = raidPtr->parityLogDiskQueue.freeCommonList;
 		raidPtr->parityLogDiskQueue.freeCommonList = raidPtr->parityLogDiskQueue.freeCommonList->next;
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	} else {
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		RF_Malloc(common, sizeof(RF_CommonLogData_t), (RF_CommonLogData_t *));
 		/* destroy is in rf_paritylogging.c */
 		rf_init_mutex2(common->mutex, IPL_VM);
@@ -92,10 +92,10 @@
 	 * NON-BLOCKING */
 
 	raidPtr = common->raidPtr;
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	common->next = raidPtr->parityLogDiskQueue.freeCommonList;
 	raidPtr->parityLogDiskQueue.freeCommonList = common;
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 static RF_ParityLogData_t *
@@ -107,13 +107,13 @@
 	 * list (rf_parityLogDiskQueue.freeList).  If the free list is empty,
 	 * call RF_Malloc to create a new structure. NON-BLOCKING */
 
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	if (raidPtr->parityLogDiskQueue.freeDataList) {
 		data = raidPtr->parityLogDiskQueue.freeDataList;
 		raidPtr->parityLogDiskQueue.freeDataList = raidPtr->parityLogDiskQueue.freeDataList->next;
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	} else {
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		RF_Malloc(data, sizeof(RF_ParityLogData_t), (RF_ParityLogData_t *));
 	}
 	data->next = NULL;
@@ -133,14 +133,14 @@
 	 * NON-BLOCKING */
 
 	raidPtr = data->common->raidPtr;
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	while (data) {
 		nextItem = data->next;
 		data->next = raidPtr->parityLogDiskQueue.freeDataList;
 		raidPtr->parityLogDiskQueue.freeDataList = data;
 		data = nextItem;
 	}
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 
@@ -160,7 +160,7 @@
 		printf("[enqueueing parity log data, region %d, raidAddress %d, numSector %d]\n", data->regionID, (int) data->diskAddress.raidAddress, (int) data->diskAddress.numSector);
 	RF_ASSERT(data->prev == NULL);
 	RF_ASSERT(data->next == NULL);
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	if (*head) {
 		/* insert into head of queue */
 		RF_ASSERT((*head)->prev == NULL);
@@ -177,7 +177,7 @@
 	}
 	RF_ASSERT((*head)->prev == NULL);
 	RF_ASSERT((*tail)->next == NULL);
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 static RF_ParityLogData_t *
@@ -194,7 +194,7 @@
 
 	/* remove from tail, preserving FIFO order */
 	if (!ignoreLocks)
-		RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	data = *tail;
 	if (data) {
 		if (*head == *tail) {
@@ -217,7 +217,7 @@
 		RF_ASSERT((*tail)->next == NULL);
 	}
 	if (!ignoreLocks)
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	return (data);
 }
 
@@ -237,7 +237,7 @@
 	RF_ASSERT(data);
 	if (rf_parityLogDebug)
 		printf("[requeueing parity log data, region %d, raidAddress %d, numSector %d]\n", data->regionID, (int) data->diskAddress.raidAddress, (int) data->diskAddress.numSector);
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	if (*tail) {
 		/* append to tail of list */
 		data->prev = *tail;
@@ -253,7 +253,7 @@
 	}
 	RF_ASSERT((*head)->prev == NULL);
 	RF_ASSERT((*tail)->next == NULL);
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 RF_ParityLogData_t *
@@ -350,7 +350,7 @@
 	/* walk backward through a list, looking for an entry with a matching
 	 * region ID */
 	if (!ignoreLocks)
-		RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	w = (*tail);
 	while (w) {
 		if (w->regionID == regionID) {
@@ -392,7 +392,7 @@
 			w = w->prev;
 	}
 	if (!ignoreLocks)
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	return (NULL);
 }
 
@@ -481,7 +481,7 @@
 	 * which are blocked on logs.  Holding mutexes for parityLogPool and
 	 * parityLogDiskQueue forces synchronization with AcquireParityLog(). */
 	RF_LOCK_MUTEX(raidPtr->parityLogPool.mutex);
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	logDataList = DequeueMatchingLogData(raidPtr, &raidPtr->parityLogDiskQueue.logBlockHead, &raidPtr->parityLogDiskQueue.logBlockTail);
 	log = firstLog;
 	if (firstLog)
@@ -490,7 +490,7 @@
 	log->next = NULL;
 	while (logDataList && log) {
 		RF_UNLOCK_MUTEX(raidPtr->parityLogPool.mutex);
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		rf_ParityLogAppend(logDataList, RF_TRUE, &log, RF_FALSE);
 		if (rf_parityLogDebug)
 			printf("[finishing up buf-blocked log data, region %d]\n", logDataList->regionID);
@@ -503,7 +503,7 @@
 			}
 		}
 		RF_LOCK_MUTEX(raidPtr->parityLogPool.mutex);
-		RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		if (log)
 			logDataList = DequeueMatchingLogData(raidPtr, &raidPtr->parityLogDiskQueue.logBlockHead, &raidPtr->parityLogDiskQueue.logBlockTail);
 	}
@@ -532,7 +532,7 @@
 		RF_ASSERT(cnt + raidPtr->logsInUse == raidPtr->numParityLogs);
 	}
 	RF_UNLOCK_MUTEX(raidPtr->parityLogPool.mutex);
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 static void
@@ -555,12 +555,12 @@
 	if (rf_parityLogDebug)
 		printf("[requesting reintegration of region %d]\n", log->regionID);
 	/* move record to reintegration queue */
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	log->next = raidPtr->parityLogDiskQueue.reintQueue;
 	raidPtr->parityLogDiskQueue.reintQueue = log;
 	RF_UNLOCK_MUTEX(raidPtr->regionInfo[regionID].reintMutex);
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
-	RF_SIGNAL_COND(raidPtr->parityLogDiskQueue.cond);
+	rf_signal_cond2(raidPtr->parityLogDiskQueue.cond);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 static void
@@ -576,11 +576,11 @@
 	RF_ASSERT(log->numRecords == raidPtr->numSectorsPerLog);
 	RF_ASSERT(log->next == NULL);
 	/* move log to flush queue */
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	log->next = raidPtr->parityLogDiskQueue.flushQueue;
 	raidPtr->parityLogDiskQueue.flushQueue = log;
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
-	RF_SIGNAL_COND(raidPtr->parityLogDiskQueue.cond);
+	rf_signal_cond2(raidPtr->parityLogDiskQueue.cond);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 }
 
 static int
@@ -696,13 +696,15 @@
 		/* Enable flushing for this region.  Holding both locks
 		 * provides a synchronization barrier with DumpParityLogToDisk */
 		RF_LOCK_MUTEX(raidPtr->regionInfo[regionID].reintMutex);
-		RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		/* XXXmrg need this? */
+		rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		RF_ASSERT(raidPtr->regionInfo[regionID].reintInProgress == RF_TRUE);
 		raidPtr->regionInfo[regionID].diskCount = 0;
 		raidPtr->regionInfo[regionID].reintInProgress = RF_FALSE;
 		RF_UNLOCK_MUTEX(raidPtr->regionInfo[regionID].reintMutex);	/* flushing is now
 										 * enabled */
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		/* XXXmrg need this? */
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	}
 	/* process each item in logData */
 	while (logData) {

Index: src/sys/dev/raidframe/rf_paritylog.h
diff -u src/sys/dev/raidframe/rf_paritylog.h:1.6 src/sys/dev/raidframe/rf_paritylog.h:1.7
--- src/sys/dev/raidframe/rf_paritylog.h:1.6	Tue May 10 07:04:17 2011
+++ src/sys/dev/raidframe/rf_paritylog.h	Wed May 11 03:23:26 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_paritylog.h,v 1.6 2011/05/10 07:04:17 mrg Exp $	*/
+/*	$NetBSD: rf_paritylog.h,v 1.7 2011/05/11 03:23:26 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -109,8 +109,8 @@
 #define RF_PLOG_SHUTDOWN  (1<<3)/* thread is aware and exiting/exited */
 
 struct RF_ParityLogDiskQueue_s {
-	RF_DECLARE_MUTEX(mutex)	/* protects all vars in this struct */
-	RF_DECLARE_COND(cond)
+	rf_declare_mutex2(mutex);/* protects all vars in this struct */
+	rf_declare_cond2(cond);
 	int     threadState;	/* is thread running, should it shutdown  (see
 				 * above) */
 	RF_ParityLog_t *flushQueue;	/* list of parity logs to be flushed

Index: src/sys/dev/raidframe/rf_paritylogDiskMgr.c
diff -u src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.24 src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.25
--- src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.24	Thu May  5 04:20:51 2011
+++ src/sys/dev/raidframe/rf_paritylogDiskMgr.c	Wed May 11 03:23:26 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $	*/
+/*	$NetBSD: rf_paritylogDiskMgr.c,v 1.25 2011/05/11 03:23:26 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.25 2011/05/11 03:23:26 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -510,7 +510,7 @@
 
 		/* remove all items which are blocked on reintegration of this
 		 * region */
-		RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		logData = rf_SearchAndDequeueParityLogData(raidPtr, regionID,
 			   &raidPtr->parityLogDiskQueue.reintBlockHead,
 			   &raidPtr->parityLogDiskQueue.reintBlockTail,
@@ -524,7 +524,7 @@
 					 RF_TRUE);
 			logData = logData->next;
 		}
-		RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+		rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 
 		/* process blocked log data and clear reintInProgress flag for
 		 * this region */
@@ -536,13 +536,15 @@
 			 * DumpParityLogToDisk */
 			RF_LOCK_MUTEX(raidPtr->regionInfo[regionID].mutex);
 			RF_LOCK_MUTEX(raidPtr->regionInfo[regionID].reintMutex);
-			RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+			/* XXXmrg: don't need this? */
+			rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 			raidPtr->regionInfo[regionID].diskCount = 0;
 			raidPtr->regionInfo[regionID].reintInProgress = RF_FALSE;
 			RF_UNLOCK_MUTEX(raidPtr->regionInfo[regionID].mutex);
 			RF_UNLOCK_MUTEX(raidPtr->regionInfo[regionID].reintMutex);	/* flushing is now
 											 * enabled */
-			RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+			/* XXXmrg: don't need this? */
+			rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 		}
 		/* if log wasn't used, attach it to the list of logs to be
 		 * returned */
@@ -607,7 +609,7 @@
 
 	s = splbio();
 
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 
 	/*
          * Inform our creator that we're running. Don't bother doing the
@@ -615,7 +617,7 @@
          * below with nothing to do, yet.
          */
 	raidPtr->parityLogDiskQueue.threadState |= RF_PLOG_RUNNING;
-	RF_SIGNAL_COND(raidPtr->parityLogDiskQueue.cond);
+	rf_signal_cond2(raidPtr->parityLogDiskQueue.cond);
 
 	/* empty the work queues */
 	flushQueue = raidPtr->parityLogDiskQueue.flushQueue;
@@ -640,7 +642,7 @@
 			 * are reintegrated are not opened for general use
 			 * until the append queue has been emptied. */
 
-			RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+			rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 
 			/* empty flushQueue, using free'd log buffers to
 			 * process bufTail */
@@ -651,7 +653,7 @@
 			if (reintQueue)
 				ReintegrateLogs(raidPtr, reintQueue);
 
-			RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+			rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 			flushQueue = raidPtr->parityLogDiskQueue.flushQueue;
 			raidPtr->parityLogDiskQueue.flushQueue = NULL;
 			reintQueue = raidPtr->parityLogDiskQueue.reintQueue;
@@ -663,15 +665,15 @@
 			/* shutdown parity logging 1. disable parity logging
 			 * in all regions 2. reintegrate all regions */
 			done = RF_TRUE;	/* thread disabled, no work needed */
-			RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+			rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 			rf_ShutdownLogging(raidPtr);
 		}
 		if (!done) {
 			/* thread enabled, no work needed, so sleep */
 			if (rf_parityLogDebug)
 				printf("[parity logging disk manager sleeping]\n");
-			RF_WAIT_COND(raidPtr->parityLogDiskQueue.cond,
-				     raidPtr->parityLogDiskQueue.mutex);
+			rf_wait_cond2(raidPtr->parityLogDiskQueue.cond,
+				      raidPtr->parityLogDiskQueue.mutex);
 			if (rf_parityLogDebug)
 				printf("[parity logging disk manager just woke up]\n");
 			flushQueue = raidPtr->parityLogDiskQueue.flushQueue;
@@ -684,10 +686,10 @@
 	/*
          * Announce that we're done.
          */
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	raidPtr->parityLogDiskQueue.threadState |= RF_PLOG_SHUTDOWN;
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
-	RF_SIGNAL_COND(raidPtr->parityLogDiskQueue.cond);
+	rf_signal_cond2(raidPtr->parityLogDiskQueue.cond);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 
 	splx(s);
 

Index: src/sys/dev/raidframe/rf_paritylogging.c
diff -u src/sys/dev/raidframe/rf_paritylogging.c:1.29 src/sys/dev/raidframe/rf_paritylogging.c:1.30
--- src/sys/dev/raidframe/rf_paritylogging.c:1.29	Tue May 10 07:04:17 2011
+++ src/sys/dev/raidframe/rf_paritylogging.c	Wed May 11 03:23:26 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_paritylogging.c,v 1.29 2011/05/10 07:04:17 mrg Exp $	*/
+/*	$NetBSD: rf_paritylogging.c,v 1.30 2011/05/11 03:23:26 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylogging.c,v 1.29 2011/05/10 07:04:17 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogging.c,v 1.30 2011/05/11 03:23:26 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -391,8 +391,8 @@
 			  rf_ShutdownParityLoggingParityBufferPool,
 			  raidPtr);
 	/* initialize parityLogDiskQueue */
-	rf_mutex_init(&raidPtr->parityLogDiskQueue.mutex);
-	raidPtr->parityLogDiskQueue.cond = 0;
+	rf_init_mutex2(raidPtr->parityLogDiskQueue.mutex, IPL_VM);
+	rf_init_cond2(raidPtr->parityLogDiskQueue.cond, "rfdskq");
 	raidPtr->parityLogDiskQueue.flushQueue = NULL;
 	raidPtr->parityLogDiskQueue.reintQueue = NULL;
 	raidPtr->parityLogDiskQueue.bufHead = NULL;
@@ -472,12 +472,12 @@
 		return (ENOMEM);
 	}
 	/* wait for thread to start */
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	while (!(raidPtr->parityLogDiskQueue.threadState & RF_PLOG_RUNNING)) {
-		RF_WAIT_COND(raidPtr->parityLogDiskQueue.cond,
-			     raidPtr->parityLogDiskQueue.mutex);
+		rf_wait_cond2(raidPtr->parityLogDiskQueue.cond,
+			      raidPtr->parityLogDiskQueue.mutex);
 	}
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 
 	rf_ShutdownCreate(listp, rf_ShutdownParityLogging, raidPtr);
 	if (rf_parityLogDebug) {
@@ -642,6 +642,9 @@
 		rf_destroy_mutex2(c->mutex);
 		RF_Free(c, sizeof(RF_CommonLogData_t));
 	}
+
+	rf_destroy_mutex2(raidPtr->parityLogDiskQueue.mutex);
+	rf_destroy_cond2(raidPtr->parityLogDiskQueue.cond);
 }
 
 static void
@@ -658,20 +661,20 @@
 	 * reintegrated.  This is necessary since all parity log maps are
 	 * currently held in volatile memory. */
 
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	raidPtr->parityLogDiskQueue.threadState |= RF_PLOG_TERMINATE;
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
-	RF_SIGNAL_COND(raidPtr->parityLogDiskQueue.cond);
+	rf_signal_cond2(raidPtr->parityLogDiskQueue.cond);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	/*
          * pLogDiskThread will now terminate when queues are cleared
          * now wait for it to be done
          */
-	RF_LOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	while (!(raidPtr->parityLogDiskQueue.threadState & RF_PLOG_SHUTDOWN)) {
-		RF_WAIT_COND(raidPtr->parityLogDiskQueue.cond,
-			     raidPtr->parityLogDiskQueue.mutex);
+		rf_wait_cond2(raidPtr->parityLogDiskQueue.cond,
+			      raidPtr->parityLogDiskQueue.mutex);
 	}
-	RF_UNLOCK_MUTEX(raidPtr->parityLogDiskQueue.mutex);
+	rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex);
 	if (rf_parityLogDebug) {
 		printf("raid%d: ShutdownParityLogging done (thread completed)\n", raidPtr->raidid);
 	}

Reply via email to