finish porting mcpair users to kmutex, and fix a couple of declarations

in rf_netbsdkintf.c.  fixes i386/conf/ALL build.
This commit is contained in:
mrg 2011-05-05 04:20:51 +00:00
parent bcb7f01345
commit 50fe584a38
3 changed files with 33 additions and 33 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $ */
/* $NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@ -33,7 +33,7 @@
****************************************************************************************/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $");
__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $");
#include "rf_archs.h"
@ -411,13 +411,13 @@ rf_VerifyParityEvenOdd(RF_Raid_t *raidPtr, RF_RaidAddr_t raidAddr,
rf_PrintDAGList(rd_dag_h);
}
#endif
RF_LOCK_MUTEX(mcpair->mutex);
RF_LOCK_MCPAIR(mcpair);
mcpair->flag = 0;
rf_DispatchDAG(rd_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
(void *) mcpair);
while (!mcpair->flag)
RF_WAIT_COND(mcpair->cond, mcpair->mutex);
RF_UNLOCK_MUTEX(mcpair->mutex);
RF_WAIT_MCPAIR(mcpair);
RF_UNLOCK_MCPAIR(mcpair);
if (rd_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to verify parity: can't read the stripe\n");
retcode = RF_PARITY_COULD_NOT_VERIFY;
@ -473,13 +473,13 @@ rf_VerifyParityEvenOdd(RF_Raid_t *raidPtr, RF_RaidAddr_t raidAddr,
rf_PrintDAGList(wr_dag_h);
}
#endif
RF_LOCK_MUTEX(mcpair->mutex);
RF_LOCK_MCPAIR(mcpair);
mcpair->flag = 0;
rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
(void *) mcpair);
while (!mcpair->flag)
RF_WAIT_COND(mcpair->cond, mcpair->mutex);
RF_UNLOCK_MUTEX(mcpair->mutex);
RF_WAIT_MCPAIR(mcpair);
RF_UNLOCK_MCPAIR(mcpair);
if (wr_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to correct parity in VerifyParity: can't write the stripe\n");
parity_cant_correct = RF_TRUE;
@ -504,13 +504,13 @@ rf_VerifyParityEvenOdd(RF_Raid_t *raidPtr, RF_RaidAddr_t raidAddr,
rf_PrintDAGList(wr_dag_h);
}
#endif
RF_LOCK_MUTEX(mcpair->mutex);
RF_LOCK_MCPAIR(mcpair);
mcpair->flag = 0;
rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
(void *) mcpair);
while (!mcpair->flag)
RF_WAIT_COND(mcpair->cond, mcpair->mutex);
RF_UNLOCK_MUTEX(mcpair->mutex);
RF_WAIT_MCPAIR(mcpair);
RF_UNLOCK_MCPAIR(mcpair);
if (wr_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to correct second redundant information in VerifyParity: can't write the stripe\n");
red2_cant_correct = RF_TRUE;

View File

@ -1,4 +1,4 @@
/* $NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $ */
/* $NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc.
@ -101,7 +101,7 @@
***********************************************************/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $");
__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@ -162,7 +162,7 @@ int rf_kdebug_level = 0;
static RF_Raid_t **raidPtrs; /* global raid device descriptors */
#if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
static rf_declare_mutex2(rf_sparet_wait_mutex):
static rf_declare_mutex2(rf_sparet_wait_mutex);
static rf_declare_cond2(rf_sparet_wait_cv);
static rf_declare_cond2(rf_sparet_resp_cv);
@ -341,9 +341,9 @@ raidattach(int num)
}
#if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
rf_init_mutex2(&rf_sparet_wait_mutex);
rf_init_cond2(&rf_sparet_wait_cv, "sparetw");
rf_init_cond2(&rf_sparet_resp_cv, "rfgst");
rf_init_mutex2(rf_sparet_wait_mutex, IPL_VM);
rf_init_cond2(rf_sparet_wait_cv, "sparetw");
rf_init_cond2(rf_sparet_resp_cv, "rfgst");
rf_sparet_wait_queue = rf_sparet_resp_queue = NULL;
#endif
@ -1930,11 +1930,11 @@ rf_GetSpareTableFromDaemon(RF_SparetWait_t *req)
rf_lock_mutex2(rf_sparet_wait_mutex);
req->next = rf_sparet_wait_queue;
rf_sparet_wait_queue = req;
rf_broadcast_conf2(rf_sparet_wait_cv);
rf_broadcast_cond2(rf_sparet_wait_cv);
/* mpsleep unlocks the mutex */
while (!rf_sparet_resp_queue) {
cv_wait(rf_sparet_resp_cv, rf_sparet_resp_mutex);
rf_wait_cond2(rf_sparet_resp_cv, rf_sparet_wait_mutex);
}
req = rf_sparet_resp_queue;
rf_sparet_resp_queue = req->next;

View File

@ -1,4 +1,4 @@
/* $NetBSD: rf_paritylogDiskMgr.c,v 1.23 2009/03/14 15:36:20 dsl Exp $ */
/* $NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 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.23 2009/03/14 15:36:20 dsl Exp $");
__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $");
#include "rf_archs.h"
@ -338,7 +338,7 @@ FlushLogsToDisk(
RF_PhysDiskAddr_t *fwr_pda;
fwr_mcpair = rf_AllocMCPair();
RF_LOCK_MUTEX(fwr_mcpair->mutex);
RF_LOCK_MCPAIR(fwr_mcpair);
RF_ASSERT(logList);
log = logList;
@ -354,7 +354,7 @@ FlushLogsToDisk(
/* wait for the DAG to complete */
while (!fwr_mcpair->flag)
RF_WAIT_COND(fwr_mcpair->cond, fwr_mcpair->mutex);
RF_WAIT_MCPAIR(fwr_mcpair);
if (fwr_dag_h->status != rf_enable) {
RF_ERRORMSG1("Unable to write core log to disk (region %d)\n", regionID);
RF_ASSERT(0);
@ -366,7 +366,7 @@ FlushLogsToDisk(
log = log->next;
}
RF_UNLOCK_MUTEX(fwr_mcpair->mutex);
RF_UNLOCK_MCPAIR(fwr_mcpair);
rf_FreeMCPair(fwr_mcpair);
rf_ReleaseParityLogs(raidPtr, logList);
}
@ -402,7 +402,7 @@ ReintegrateRegion(
printf("[initiating read of parity for region %d]\n",regionID);
parityBuffer = AcquireReintBuffer(&raidPtr->parityBufferPool);
prd_mcpair = rf_AllocMCPair();
RF_LOCK_MUTEX(prd_mcpair->mutex);
RF_LOCK_MCPAIR(prd_mcpair);
prd_mcpair->flag = RF_FALSE;
ReadRegionParity(regionID, prd_mcpair, parityBuffer, raidPtr,
&prd_dag_h, &prd_alloclist, &prd_pda);
@ -414,16 +414,16 @@ ReintegrateRegion(
regionID);
regionBuffer = AcquireReintBuffer(&raidPtr->regionBufferPool);
rrd_mcpair = rf_AllocMCPair();
RF_LOCK_MUTEX(rrd_mcpair->mutex);
RF_LOCK_MCPAIR(rrd_mcpair);
rrd_mcpair->flag = RF_FALSE;
ReadRegionLog(regionID, rrd_mcpair, regionBuffer, raidPtr,
&rrd_dag_h, &rrd_alloclist, &rrd_pda);
}
/* wait on read of region parity to complete */
while (!prd_mcpair->flag) {
RF_WAIT_COND(prd_mcpair->cond, prd_mcpair->mutex);
RF_WAIT_MCPAIR(prd_mcpair);
}
RF_UNLOCK_MUTEX(prd_mcpair->mutex);
RF_UNLOCK_MCPAIR(prd_mcpair);
if (prd_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to read parity from disk\n");
/* add code to fail the parity disk */
@ -435,8 +435,8 @@ ReintegrateRegion(
if (raidPtr->regionInfo[regionID].diskCount > 0) {
/* wait on read of region log to complete */
while (!rrd_mcpair->flag)
RF_WAIT_COND(rrd_mcpair->cond, rrd_mcpair->mutex);
RF_UNLOCK_MUTEX(rrd_mcpair->mutex);
RF_WAIT_MCPAIR(rrd_mcpair);
RF_UNLOCK_MCPAIR(rrd_mcpair);
if (rrd_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to read region log from disk\n");
/* add code to fail the log disk */
@ -457,13 +457,13 @@ ReintegrateRegion(
printf("[initiating write of parity for region %d]\n",
regionID);
pwr_mcpair = rf_AllocMCPair();
RF_LOCK_MUTEX(pwr_mcpair->mutex);
RF_LOCK_MCPAIR(pwr_mcpair);
pwr_mcpair->flag = RF_FALSE;
WriteRegionParity(regionID, pwr_mcpair, parityBuffer, raidPtr,
&pwr_dag_h, &pwr_alloclist, &pwr_pda);
while (!pwr_mcpair->flag)
RF_WAIT_COND(pwr_mcpair->cond, pwr_mcpair->mutex);
RF_UNLOCK_MUTEX(pwr_mcpair->mutex);
RF_WAIT_MCPAIR(pwr_mcpair);
RF_UNLOCK_MCPAIR(pwr_mcpair);
if (pwr_dag_h->status != rf_enable) {
RF_ERRORMSG("Unable to write parity to disk\n");
/* add code to fail the parity disk */