diff options
| author | oster <oster@NetBSD.org> | 2004-11-16 16:45:51 +0000 |
|---|---|---|
| committer | oster <oster@NetBSD.org> | 2004-11-16 16:45:51 +0000 |
| commit | d7e754c41da2eeab50196f671b81a1704c3d5f76 (patch) | |
| tree | 2d6c6ada2965e2384f18c6325a87e90e96242d0f /sys/dev/raidframe/rf_driver.c | |
| parent | 297b6b1873abca623e18eb7abe790925ac90712a (diff) | |
On an idea from Thor (tls@), do not fail a component if doing so would
render the RAID set completely dead. Instead, we retry the IO a
maximum of RF_RETRY_THRESHOLD times (currently '5'), and then just
return an IO error if the IO fails. This should reduce the damage
caused by having multiple disks appear to fail when the culprit is
really something else (power, controllers, etc.)
Diffstat (limited to 'sys/dev/raidframe/rf_driver.c')
| -rw-r--r-- | sys/dev/raidframe/rf_driver.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/raidframe/rf_driver.c b/sys/dev/raidframe/rf_driver.c index 1df8daf0442..81b7f090cd2 100644 --- a/sys/dev/raidframe/rf_driver.c +++ b/sys/dev/raidframe/rf_driver.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_driver.c,v 1.104 2004/06/29 17:09:01 oster Exp $ */ +/* $NetBSD: rf_driver.c,v 1.105 2004/11/16 16:45:51 oster Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. * All rights reserved. @@ -73,7 +73,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.104 2004/06/29 17:09:01 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.105 2004/11/16 16:45:51 oster Exp $"); #include "opt_raid_diagnostic.h" @@ -573,6 +573,7 @@ rf_AllocRaidAccDesc(RF_Raid_t *raidPtr, RF_IoType_t type, desc->dagList = NULL; desc->status = 0; + desc->numRetries = 0; #if RF_ACC_TRACE > 0 memset((char *) &desc->tracerec, 0, sizeof(RF_AccTraceEntry_t)); #endif |
