diff options
| author | oster <oster@NetBSD.org> | 2004-03-05 03:58:21 +0000 |
|---|---|---|
| committer | oster <oster@NetBSD.org> | 2004-03-05 03:58:21 +0000 |
| commit | bfeeabba13b5ee42df5b6bfc81d1ce84563b8390 (patch) | |
| tree | e576a03e1701c8cf9ec3e91979cd1f48bd9871bd /sys/dev/raidframe | |
| parent | 7bd09b0f2b2b45c52f043c17ee95a8939af2cfe8 (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.c | 8 | ||||
| -rw-r--r-- | sys/dev/raidframe/rf_raid5.c | 14 | ||||
| -rw-r--r-- | sys/dev/raidframe/rf_reconstruct.c | 17 |
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: |
