diff options
| author | oster <oster@NetBSD.org> | 2004-03-04 02:49:58 +0000 |
|---|---|---|
| committer | oster <oster@NetBSD.org> | 2004-03-04 02:49:58 +0000 |
| commit | 708c19adaf366570611da6c3a7b9d9949b36d21c (patch) | |
| tree | 26cfb98f3e7d55f6c57b1b89bba7f30687d1084e /sys/dev/raidframe | |
| parent | 119b5f631ac3e5af84a6f0ab3912e300e4e9f23a (diff) | |
Fix mcpair locking issues -- we really don't need the lock held
the entire time we spend in calling rf_DiskIOEnqueue().
Diffstat (limited to 'sys/dev/raidframe')
| -rw-r--r-- | sys/dev/raidframe/rf_copyback.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/raidframe/rf_copyback.c b/sys/dev/raidframe/rf_copyback.c index 90a53c46c12..6046f9c9650 100644 --- a/sys/dev/raidframe/rf_copyback.c +++ b/sys/dev/raidframe/rf_copyback.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_copyback.c,v 1.27 2003/12/30 21:59:03 oster Exp $ */ +/* $NetBSD: rf_copyback.c,v 1.28 2004/03/04 02:49:58 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -38,7 +38,7 @@ ****************************************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.27 2003/12/30 21:59:03 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.28 2004/03/04 02:49:58 oster Exp $"); #include <dev/raidframe/raidframevar.h> @@ -351,9 +351,11 @@ rf_CopybackOne(RF_CopybackDesc_t *desc, int typ, RF_RaidAddr_t addr, RF_LOCK_MUTEX(desc->mcpair->mutex); desc->mcpair->flag = 0; + RF_UNLOCK_MUTEX(desc->mcpair->mutex); rf_DiskIOEnqueue(&raidPtr->Queues[spCol], desc->readreq, RF_IO_NORMAL_PRIORITY); + RF_LOCK_MUTEX(desc->mcpair->mutex); while (!desc->mcpair->flag) { RF_WAIT_MCPAIR(desc->mcpair); } |
