summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
diff options
context:
space:
mode:
authoroster <oster@NetBSD.org>2004-03-05 03:58:21 +0000
committeroster <oster@NetBSD.org>2004-03-05 03:58:21 +0000
commitbfeeabba13b5ee42df5b6bfc81d1ce84563b8390 (patch)
treee576a03e1701c8cf9ec3e91979cd1f48bd9871bd /sys/dev/raidframe
parent7bd09b0f2b2b45c52f043c17ee95a8939af2cfe8 (diff)
Use RF_INCLUDE_PARITY_DECLUSTERING_DS to #if-out more unneeded bits.
(We can't do RF_DISTRIBUTE_SPARE bits without the parity declustering stuff.)
Diffstat (limited to 'sys/dev/raidframe')
-rw-r--r--sys/dev/raidframe/rf_parityscan.c8
-rw-r--r--sys/dev/raidframe/rf_raid5.c14
-rw-r--r--sys/dev/raidframe/rf_reconstruct.c17
3 files changed, 26 insertions, 13 deletions
diff --git a/sys/dev/raidframe/rf_parityscan.c b/sys/dev/raidframe/rf_parityscan.c
index 71c90e7061c..873d2abb29c 100644
--- a/sys/dev/raidframe/rf_parityscan.c
+++ b/sys/dev/raidframe/rf_parityscan.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_parityscan.c,v 1.25 2004/03/02 15:47:35 oster Exp $ */
+/* $NetBSD: rf_parityscan.c,v 1.26 2004/03/05 03:58:21 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
****************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_parityscan.c,v 1.25 2004/03/02 15:47:35 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_parityscan.c,v 1.26 2004/03/05 03:58:21 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -325,6 +325,7 @@ rf_TryToRedirectPDA(RF_Raid_t *raidPtr, RF_PhysDiskAddr_t *pda, int parity)
{
if (raidPtr->Disks[pda->col].status == rf_ds_reconstructing) {
if (rf_CheckRUReconstructed(raidPtr->reconControl->reconMap, pda->startSector)) {
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
if (raidPtr->Layout.map->flags & RF_DISTRIBUTE_SPARE) {
#if RF_DEBUG_VERIFYPARITY
RF_RowCol_t oc = pda->col;
@@ -346,9 +347,12 @@ rf_TryToRedirectPDA(RF_Raid_t *raidPtr, RF_PhysDiskAddr_t *pda, int parity)
#endif
}
} else {
+#endif
RF_RowCol_t spCol = raidPtr->Disks[pda->col].spareCol;
pda->col = spCol;
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
}
+#endif
}
}
if (RF_DEAD_DISK(raidPtr->Disks[pda->col].status))
diff --git a/sys/dev/raidframe/rf_raid5.c b/sys/dev/raidframe/rf_raid5.c
index 09f159961c6..b20a81840a0 100644
--- a/sys/dev/raidframe/rf_raid5.c
+++ b/sys/dev/raidframe/rf_raid5.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_raid5.c,v 1.13 2004/03/05 03:22:05 oster Exp $ */
+/* $NetBSD: rf_raid5.c,v 1.14 2004/03/05 03:58:21 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
*****************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_raid5.c,v 1.13 2004/03/05 03:22:05 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_raid5.c,v 1.14 2004/03/05 03:58:21 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -196,7 +196,7 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
RF_RowCol_t oc = failedPDA->col;
RF_SectorNum_t oo = failedPDA->startSector;
#endif
-
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
if (layoutPtr->map->flags & RF_DISTRIBUTE_SPARE) { /* redirect to dist
* spare space */
@@ -228,8 +228,9 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
}
- } else { /* redirect to dedicated spare
- * space */
+ } else {
+#endif
+ /* redirect to dedicated spare space */
failedPDA->col = raidPtr->Disks[fcol].spareCol;
@@ -245,8 +246,9 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
asmap->parityInfo->col = failedPDA->col;
}
}
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
}
-
+#endif
RF_ASSERT(failedPDA->col != -1);
#if RF_DEBUG_DAG > 0 || RF_DEBUG_MAP > 0
diff --git a/sys/dev/raidframe/rf_reconstruct.c b/sys/dev/raidframe/rf_reconstruct.c
index aff535d297f..99719fa5dea 100644
--- a/sys/dev/raidframe/rf_reconstruct.c
+++ b/sys/dev/raidframe/rf_reconstruct.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_reconstruct.c,v 1.71 2004/03/03 17:14:46 oster Exp $ */
+/* $NetBSD: rf_reconstruct.c,v 1.72 2004/03/05 03:58:21 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.71 2004/03/03 17:14:46 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.72 2004/03/05 03:58:21 oster Exp $");
#include <sys/time.h>
#include <sys/buf.h>
@@ -247,7 +247,7 @@ rf_ReconstructFailedDiskBasic(RF_Raid_t *raidPtr, RF_RowCol_t col)
RF_LOCK_MUTEX(raidPtr->mutex);
RF_ASSERT(raidPtr->Disks[col].status == rf_ds_failed);
-
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
if (raidPtr->Layout.map->flags & RF_DISTRIBUTE_SPARE) {
if (raidPtr->status != rf_rs_degraded) {
RF_ERRORMSG1("Unable to reconstruct disk at col %d because status not degraded\n", col);
@@ -256,6 +256,7 @@ rf_ReconstructFailedDiskBasic(RF_Raid_t *raidPtr, RF_RowCol_t col)
}
scol = (-1);
} else {
+#endif
for (scol = raidPtr->numCol; scol < raidPtr->numCol + raidPtr->numSpare; scol++) {
if (raidPtr->Disks[scol].status == rf_ds_spare) {
spareDiskPtr = &raidPtr->Disks[scol];
@@ -269,7 +270,9 @@ rf_ReconstructFailedDiskBasic(RF_Raid_t *raidPtr, RF_RowCol_t col)
return (ENOSPC);
}
printf("RECON: initiating reconstruction on col %d -> spare at col %d\n", col, scol);
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
}
+#endif
RF_UNLOCK_MUTEX(raidPtr->mutex);
reconDesc = AllocRaidReconDesc((void *) raidPtr, col, spareDiskPtr, numDisksDone, scol);
@@ -390,6 +393,7 @@ rf_ReconstructInPlace(RF_Raid_t *raidPtr, RF_RowCol_t col)
on any component without ill affects. */
/* RF_ASSERT(raidPtr->Disks[col].status == rf_ds_failed); */
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
if (raidPtr->Layout.map->flags & RF_DISTRIBUTE_SPARE) {
RF_ERRORMSG1("Unable to reconstruct to disk at col %d: operation not supported for RF_DISTRIBUTE_SPARE\n", col);
@@ -398,7 +402,7 @@ rf_ReconstructInPlace(RF_Raid_t *raidPtr, RF_RowCol_t col)
RF_SIGNAL_COND(raidPtr->waitForReconCond);
return (EINVAL);
}
-
+#endif
proc = raidPtr->engine_thread;
/* This device may have been opened successfully the
@@ -1171,16 +1175,19 @@ ComputePSDiskOffsets(RF_Raid_t *raidPtr, RF_StripeNum_t psid,
RF_ASSERT(fcol == testcol);
/* now locate the spare unit for the failed unit */
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
if (layoutPtr->map->flags & RF_DISTRIBUTE_SPARE) {
if (j_is_parity)
layoutPtr->map->MapParity(raidPtr, sosRaidAddress + j_offset * layoutPtr->sectorsPerStripeUnit, spCol, spOffset, RF_REMAP);
else
layoutPtr->map->MapSector(raidPtr, sosRaidAddress + j_offset * layoutPtr->sectorsPerStripeUnit, spCol, spOffset, RF_REMAP);
} else {
+#endif
*spCol = raidPtr->reconControl->spareCol;
*spOffset = *outFailedDiskSectorOffset;
+#if RF_INCLUDE_PARITY_DECLUSTERING_DS > 0
}
-
+#endif
return (0);
skipit: