summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum/vinumlock.c
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>2000-01-05 22:59:36 +0000
committergrog <grog@FreeBSD.org>2000-01-05 22:59:36 +0000
commitd2a72ec9012850a78e35076176d864117fbf923c (patch)
treecd664b5155d891446c720860ff69f40da7698791 /sys/dev/vinum/vinumlock.c
parent54de424eb011d6673dbaa076dedf535fe0b6b4e5 (diff)
downloadFreeBSD-src-d2a72ec9012850a78e35076176d864117fbf923c.zip
FreeBSD-src-d2a72ec9012850a78e35076176d864117fbf923c.tar.gz
Don't tsleep with PCATCH, it's a wonderful way to hang the system.
Reported-by: Bernd Walter <ticso@cicely.de>
Diffstat (limited to 'sys/dev/vinum/vinumlock.c')
-rw-r--r--sys/dev/vinum/vinumlock.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/dev/vinum/vinumlock.c b/sys/dev/vinum/vinumlock.c
index 62df004..78c4ce8 100644
--- a/sys/dev/vinum/vinumlock.c
+++ b/sys/dev/vinum/vinumlock.c
@@ -37,6 +37,7 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
+ * $Id: vinumlock.c,v 1.11 1999/10/12 04:35:37 grog Exp grog $
* $FreeBSD$
*/
@@ -87,7 +88,7 @@ lockdrive(struct drive *drive)
* of conflicts is negligible.
*/
if ((error = tsleep(&lockdrive,
- PRIBIO | PCATCH,
+ PRIBIO,
"vindrv",
0)) != 0)
return error;
@@ -126,7 +127,7 @@ lockvol(struct volume *vol)
* table expansion. The address we choose won't change.
*/
if ((error = tsleep(&vinum_conf.volume + vol->volno,
- PRIBIO | PCATCH,
+ PRIBIO,
"volock",
0)) != 0)
return error;
@@ -161,7 +162,7 @@ lockplex(struct plex *plex)
* table expansion. The address we choose won't change.
*/
if ((error = tsleep(&vinum_conf.plex + plex->sdnos[0],
- PRIBIO | PCATCH,
+ PRIBIO,
"plexlk",
0)) != 0)
return error;
@@ -248,7 +249,7 @@ lockrange(daddr_t stripe, struct buf *bp, struct plex *plex)
#endif
plex->lockwaits++; /* waited one more time */
while (lock->stripe) /* wait for it to become free */
- tsleep((void *) lock->stripe, PRIBIO | PCATCH, "vrlock", 2 * hz);
+ tsleep((void *) lock->stripe, PRIBIO, "vrlock", 2 * hz);
break; /* out of the inner level loop */
}
} else {
@@ -307,7 +308,7 @@ lock_config(void)
while ((vinum_conf.flags & VF_LOCKED) != 0) {
vinum_conf.flags |= VF_LOCKING;
- if ((error = tsleep(&vinum_conf, PRIBIO | PCATCH, "vincfg", 0)) != 0)
+ if ((error = tsleep(&vinum_conf, PRIBIO, "vincfg", 0)) != 0)
return error;
}
vinum_conf.flags |= VF_LOCKED;
OpenPOWER on IntegriCloud