summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/usr/hwas/common/deconfigGard.C22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
index f844ec912..7e77b4ef7 100644
--- a/src/usr/hwas/common/deconfigGard.C
+++ b/src/usr/hwas/common/deconfigGard.C
@@ -568,13 +568,6 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
{
GardRecord l_gardRecord = *l_itr;
- //Continue only with FATAL/UNRECOVERABLE gard errors.
- if((l_gardRecord.iv_errorType != GARD_Fatal)&&
- (l_gardRecord.iv_errorType != GARD_Unrecoverable))
- {
- //Skip recoverable gard records
- continue;
- }
// Find the associated Target
Target * l_pTarget =
targetService().toTarget(l_gardRecord.iv_targetId);
@@ -590,6 +583,16 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
continue;
}
+ //Continue only with FATAL/UNRECOVERABLE gard errors.
+ //All gard on node deosnt need resource recovery
+ if(((l_gardRecord.iv_errorType != GARD_Fatal)&&
+ (l_gardRecord.iv_errorType != GARD_Unrecoverable))||
+ (l_pTarget->getAttr<ATTR_TYPE>() == TYPE_NODE))
+ {
+ //Skip recoverable gard records
+ continue;
+ }
+
// if this does NOT match, continue to next in loop
if (i_pPredicate && ((*i_pPredicate)(l_pTarget) == false))
{
@@ -726,9 +729,10 @@ errlHndl_t DeconfigGard::deconfigureTargetsFromGardRecordsForIpl(
}
continue;
}
- //Continue only with recoverable gard errors.
+ //Continue only with recoverable or non node gard errors.
if((l_gardRecord.iv_errorType == GARD_Fatal)||
- (l_gardRecord.iv_errorType == GARD_Unrecoverable))
+ (l_gardRecord.iv_errorType == GARD_Unrecoverable)||
+ (l_pTarget->getAttr<ATTR_TYPE>() == TYPE_NODE))
{
//Skip non-recoverable gard records
continue;
OpenPOWER on IntegriCloud