summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe/rf_diskqueue.c
diff options
context:
space:
mode:
authoroster <oster@NetBSD.org>1999-06-04 01:51:00 +0000
committeroster <oster@NetBSD.org>1999-06-04 01:51:00 +0000
commit60769ea563954d1aa7e1ff086a6d9b65110fa991 (patch)
tree70fd6f1ee6b22cfb15da61df828a2512c7f62b53 /sys/dev/raidframe/rf_diskqueue.c
parent3af0ce9e1983808ab6d655f5f9a09bb7a78a6664 (diff)
At config time, initialize a small amount of space for the disk queues
corresponding to the hot spares. We'll need that space when a spare is actually added. Huge Thanks to Martin Laubach for helping track this down.
Diffstat (limited to 'sys/dev/raidframe/rf_diskqueue.c')
-rw-r--r--sys/dev/raidframe/rf_diskqueue.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/dev/raidframe/rf_diskqueue.c b/sys/dev/raidframe/rf_diskqueue.c
index d746b5861f8..e7bb1acee48 100644
--- a/sys/dev/raidframe/rf_diskqueue.c
+++ b/sys/dev/raidframe/rf_diskqueue.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_diskqueue.c,v 1.6 1999/02/05 00:06:09 oster Exp $ */
+/* $NetBSD: rf_diskqueue.c,v 1.7 1999/06/04 01:51:00 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -181,7 +181,12 @@ clean_dqd(dqd)
free(dqd->bp, M_RAIDFRAME);
}
/* configures a single disk queue */
-static int
+int config_disk_queue(RF_Raid_t *, RF_DiskQueue_t *, RF_RowCol_t,
+ RF_RowCol_t, RF_DiskQueueSW_t *,
+ RF_SectorCount_t, dev_t, int,
+ RF_ShutdownList_t **,
+ RF_AllocListElem_t *);
+int
config_disk_queue(
RF_Raid_t * raidPtr,
RF_DiskQueue_t * diskqueue,
@@ -285,7 +290,10 @@ rf_ConfigureDiskQueues(
}
raidPtr->Queues = diskQueues;
for (r = 0; r < raidPtr->numRow; r++) {
- RF_CallocAndAdd(diskQueues[r], raidPtr->numCol + ((r == 0) ? raidPtr->numSpare : 0), sizeof(RF_DiskQueue_t), (RF_DiskQueue_t *), raidPtr->cleanupList);
+ RF_CallocAndAdd(diskQueues[r], raidPtr->numCol +
+ ((r == 0) ? RF_MAXSPARE : 0),
+ sizeof(RF_DiskQueue_t), (RF_DiskQueue_t *),
+ raidPtr->cleanupList);
if (diskQueues[r] == NULL)
return (ENOMEM);
for (c = 0; c < raidPtr->numCol; c++) {