diff options
| author | mrg <mrg@NetBSD.org> | 2011-05-05 08:21:29 +0000 |
|---|---|---|
| committer | mrg <mrg@NetBSD.org> | 2011-05-05 08:21:29 +0000 |
| commit | 932b4ccbe2ee72f9ac16f0754ff32e0d009b8123 (patch) | |
| tree | 8b2427bf67270517991ed79e2b03985b44c1441a /sys/dev/raidframe | |
| parent | 3ef8c678412be47c29a94835993fdcb382d70f48 (diff) | |
convert stripelocks to kmutex.
Diffstat (limited to 'sys/dev/raidframe')
| -rw-r--r-- | sys/dev/raidframe/rf_stripelocks.c | 27 | ||||
| -rw-r--r-- | sys/dev/raidframe/rf_stripelocks.h | 4 |
2 files changed, 21 insertions, 10 deletions
diff --git a/sys/dev/raidframe/rf_stripelocks.c b/sys/dev/raidframe/rf_stripelocks.c index 697dfdca476..17976116b0e 100644 --- a/sys/dev/raidframe/rf_stripelocks.c +++ b/sys/dev/raidframe/rf_stripelocks.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_stripelocks.c,v 1.31 2011/04/30 01:44:36 mrg Exp $ */ +/* $NetBSD: rf_stripelocks.c,v 1.32 2011/05/05 08:21:29 mrg Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_stripelocks.c,v 1.31 2011/04/30 01:44:36 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_stripelocks.c,v 1.32 2011/05/05 08:21:29 mrg Exp $"); #include <dev/raidframe/raidframevar.h> @@ -182,6 +182,17 @@ rf_ConfigureStripeLockFreeList(RF_ShutdownList_t **listp) return (0); } +static void +rf_DestroyLockTable(RF_LockTableEntry_t *lockTable) +{ + int i; + + for (i = 0; i < rf_lockTableSize; i++) { + rf_destroy_mutex2(lockTable[i].mutex); + } + RF_Free(lockTable, rf_lockTableSize * sizeof(RF_LockTableEntry_t)); +} + static RF_LockTableEntry_t * rf_MakeLockTable(void) { @@ -194,7 +205,7 @@ rf_MakeLockTable(void) if (lockTable == NULL) return (NULL); for (i = 0; i < rf_lockTableSize; i++) { - rf_mutex_init(&lockTable[i].mutex); + rf_init_mutex2(lockTable[i].mutex, IPL_VM); } return (lockTable); } @@ -208,7 +219,7 @@ rf_ShutdownStripeLocks(RF_LockTableEntry_t * lockTable) PrintLockedStripes(lockTable); } #endif - RF_Free(lockTable, rf_lockTableSize * sizeof(RF_LockTableEntry_t)); + rf_DestroyLockTable(lockTable); } static void @@ -268,7 +279,7 @@ rf_AcquireStripeLock(RF_LockTableEntry_t *lockTable, RF_StripeNum_t stripeID, lockReqDesc->next = NULL; /* just to be sure */ newlockDesc = AllocStripeLockDesc(stripeID); - RF_LOCK_MUTEX(lockTable[hashval].mutex); + rf_lock_mutex2(lockTable[hashval].mutex); for (lockDesc = lockTable[hashval].descList; lockDesc; lockDesc = lockDesc->next) { if (lockDesc->stripeID == stripeID) @@ -354,7 +365,7 @@ rf_AcquireStripeLock(RF_LockTableEntry_t *lockTable, RF_StripeNum_t stripeID, } } - RF_UNLOCK_MUTEX(lockTable[hashval].mutex); + rf_unlock_mutex2(lockTable[hashval].mutex); return (retcode); } @@ -387,7 +398,7 @@ rf_ReleaseStripeLock(RF_LockTableEntry_t *lockTable, RF_StripeNum_t stripeID, if (stripeID == -1) return; - RF_LOCK_MUTEX(lockTable[hashval].mutex); + rf_lock_mutex2(lockTable[hashval].mutex); /* find the stripe lock descriptor */ for (ld_t = NULL, lockDesc = lockTable[hashval].descList; @@ -600,7 +611,7 @@ rf_ReleaseStripeLock(RF_LockTableEntry_t *lockTable, RF_StripeNum_t stripeID, FreeStripeLockDesc(lockDesc); lockDesc = NULL;/* only for the ASSERT below */ } - RF_UNLOCK_MUTEX(lockTable[hashval].mutex); + rf_unlock_mutex2(lockTable[hashval].mutex); /* now that we've unlocked the mutex, invoke the callback on * all the descriptors in the list */ diff --git a/sys/dev/raidframe/rf_stripelocks.h b/sys/dev/raidframe/rf_stripelocks.h index 6581d093e57..5225c93f3b8 100644 --- a/sys/dev/raidframe/rf_stripelocks.h +++ b/sys/dev/raidframe/rf_stripelocks.h @@ -1,4 +1,4 @@ -/* $NetBSD: rf_stripelocks.h,v 1.7 2005/12/11 12:23:37 christos Exp $ */ +/* $NetBSD: rf_stripelocks.h,v 1.8 2011/05/05 08:21:29 mrg Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -75,7 +75,7 @@ struct RF_StripeLockDesc_s { }; struct RF_LockTableEntry_s { - RF_DECLARE_MUTEX(mutex) /* mutex on this hash chain */ + rf_declare_mutex2(mutex); /* mutex on this hash chain */ RF_StripeLockDesc_t *descList; /* hash chain of lock descriptors */ }; /* |
