Lines Matching refs:node
214 rf_BranchDone(RF_DagNode_t *node) in rf_BranchDone() argument
222 switch (node->status) { in rf_BranchDone()
232 for (i = 0; i < node->numSuccedents; i++) in rf_BranchDone()
234 if (!rf_BranchDone(node->succedents[i])) in rf_BranchDone()
263 rf_NodeReady(RF_DagNode_t *node) in rf_NodeReady() argument
267 switch (node->dagHdr->status) { in rf_NodeReady()
270 if ((node->status == rf_wait) && in rf_NodeReady()
271 (node->numAntecedents == node->numAntDone)) in rf_NodeReady()
277 RF_ASSERT(node->numSuccDone <= node->numSuccedents); in rf_NodeReady()
278 RF_ASSERT(node->numSuccFired <= node->numSuccedents); in rf_NodeReady()
279 RF_ASSERT(node->numSuccFired <= node->numSuccDone); in rf_NodeReady()
280 if ((node->status == rf_good) && in rf_NodeReady()
281 (node->numSuccDone == node->numSuccedents)) in rf_NodeReady()
305 rf_FireNode(RF_DagNode_t *node) in rf_FireNode() argument
307 switch (node->status) { in rf_FireNode()
312 node->dagHdr->raidPtr->raidid, in rf_FireNode()
313 (unsigned long) node, node->name); in rf_FireNode()
315 if (node->flags & RF_DAGNODE_FLAG_YIELD) { in rf_FireNode()
327 (*(node->doFunc)) (node); in rf_FireNode()
333 node->dagHdr->raidPtr->raidid, in rf_FireNode()
334 (unsigned long) node, node->name); in rf_FireNode()
336 if (node->flags & RF_DAGNODE_FLAG_YIELD) { in rf_FireNode()
348 (*(node->undoFunc)) (node); in rf_FireNode()
366 RF_DagNode_t *node; in rf_FireNodeArray() local
371 node = nodeList[i]; in rf_FireNodeArray()
372 dstat = node->dagHdr->status; in rf_FireNodeArray()
373 RF_ASSERT((node->status == rf_wait) || in rf_FireNodeArray()
374 (node->status == rf_good)); in rf_FireNodeArray()
375 if (rf_NodeReady(node)) { in rf_FireNodeArray()
377 RF_ASSERT(node->status == rf_wait); in rf_FireNodeArray()
378 if (node->commitNode) in rf_FireNodeArray()
379 node->dagHdr->numCommits++; in rf_FireNodeArray()
380 node->status = rf_fired; in rf_FireNodeArray()
381 for (j = 0; j < node->numAntecedents; j++) in rf_FireNodeArray()
382 node->antecedents[j]->numSuccFired++; in rf_FireNodeArray()
385 RF_ASSERT(node->status == rf_good); in rf_FireNodeArray()
387 RF_ASSERT(node->commitNode == RF_FALSE); in rf_FireNodeArray()
388 node->status = rf_recover; in rf_FireNodeArray()
409 RF_DagNode_t *node, *next; in rf_FireNodeList() local
415 for (node = nodeList; node; node = next) { in rf_FireNodeList()
416 next = node->next; in rf_FireNodeList()
417 dstat = node->dagHdr->status; in rf_FireNodeList()
418 RF_ASSERT((node->status == rf_wait) || in rf_FireNodeList()
419 (node->status == rf_good)); in rf_FireNodeList()
420 if (rf_NodeReady(node)) { in rf_FireNodeList()
423 RF_ASSERT(node->status == rf_wait); in rf_FireNodeList()
424 if (node->commitNode) in rf_FireNodeList()
425 node->dagHdr->numCommits++; in rf_FireNodeList()
426 node->status = rf_fired; in rf_FireNodeList()
427 for (j = 0; j < node->numAntecedents; in rf_FireNodeList()
429 node->antecedents[j] in rf_FireNodeList()
433 RF_ASSERT(node->status == rf_good); in rf_FireNodeList()
435 RF_ASSERT(node->commitNode == RF_FALSE); in rf_FireNodeList()
436 node->status = rf_recover; in rf_FireNodeList()
441 for (node = nodeList; node; node = next) { in rf_FireNodeList()
442 next = node->next; in rf_FireNodeList()
443 if ((node->status == rf_fired) || in rf_FireNodeList()
444 (node->status == rf_recover)) in rf_FireNodeList()
445 rf_FireNode(node); in rf_FireNodeList()
469 rf_PropagateResults(RF_DagNode_t *node, int context) in rf_PropagateResults() argument
482 raidPtr = node->dagHdr->raidPtr; in rf_PropagateResults()
487 for (i = 0; i < node->numAntecedents; i++) { in rf_PropagateResults()
488 a = *(node->antecedents + i); in rf_PropagateResults()
494 switch (node->dagHdr->status) { in rf_PropagateResults()
497 for (i = 0; i < node->numSuccedents; i++) { in rf_PropagateResults()
498 s = *(node->succedents + i); in rf_PropagateResults()
618 for (i = 0; i < node->numAntecedents; i++) { in rf_PropagateResults()
619 a = *(node->antecedents + i); in rf_PropagateResults()
707 rf_ProcessNode(RF_DagNode_t *node, int context) in rf_ProcessNode() argument
711 raidPtr = node->dagHdr->raidPtr; in rf_ProcessNode()
713 switch (node->status) { in rf_ProcessNode()
718 if ((node->dagHdr->numCommits > 0) || in rf_ProcessNode()
719 (node->dagHdr->numCommitNodes == 0)) { in rf_ProcessNode()
721 node->dagHdr->status = rf_rollForward; in rf_ProcessNode()
725 node->name); in rf_ProcessNode()
729 node->dagHdr->status = rf_rollBackward; in rf_ProcessNode()
733 node->name); in rf_ProcessNode()
754 rf_PropagateResults(node, context); in rf_ProcessNode()
765 rf_FinishNode(RF_DagNode_t *node, int context) in rf_FinishNode() argument
769 node->dagHdr->numNodesCompleted++; in rf_FinishNode()
770 rf_ProcessNode(node, context); in rf_FinishNode()