Lines Matching refs:node
106 rf_TerminateFunc(RF_DagNode_t *node) in rf_TerminateFunc() argument
108 RF_ASSERT(node->dagHdr->numCommits == node->dagHdr->numCommitNodes); in rf_TerminateFunc()
109 node->status = rf_good; in rf_TerminateFunc()
110 rf_FinishNode(node, RF_THREAD_CONTEXT); in rf_TerminateFunc()
114 rf_TerminateUndoFunc(RF_DagNode_t *node) in rf_TerminateUndoFunc() argument
133 rf_DiskReadMirrorIdleFunc(RF_DagNode_t *node) in rf_DiskReadMirrorIdleFunc() argument
138 rf_SelectMirrorDiskIdle(node); in rf_DiskReadMirrorIdleFunc()
139 rf_DiskReadFunc(node); in rf_DiskReadMirrorIdleFunc()
144 rf_DiskReadMirrorPartitionFunc(RF_DagNode_t *node) in rf_DiskReadMirrorPartitionFunc() argument
149 rf_SelectMirrorDiskPartition(node); in rf_DiskReadMirrorPartitionFunc()
150 rf_DiskReadFunc(node); in rf_DiskReadMirrorPartitionFunc()
155 rf_DiskReadMirrorUndoFunc(RF_DagNode_t *node) in rf_DiskReadMirrorUndoFunc() argument
166 rf_ParityLogUpdateFunc(RF_DagNode_t *node) in rf_ParityLogUpdateFunc() argument
168 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_ParityLogUpdateFunc()
169 void *bf = (void *) node->params[1].p; in rf_ParityLogUpdateFunc()
172 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_ParityLogUpdateFunc()
176 if (node->dagHdr->status == rf_enable) { in rf_ParityLogUpdateFunc()
181 (RF_Raid_t *) (node->dagHdr->raidPtr), in rf_ParityLogUpdateFunc()
182 node->wakeFunc, node, in rf_ParityLogUpdateFunc()
183 node->dagHdr->tracerec, timer); in rf_ParityLogUpdateFunc()
192 (node->wakeFunc) (node, ENOMEM); in rf_ParityLogUpdateFunc()
202 rf_ParityLogOverwriteFunc(RF_DagNode_t *node) in rf_ParityLogOverwriteFunc() argument
204 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_ParityLogOverwriteFunc()
205 void *bf = (void *) node->params[1].p; in rf_ParityLogOverwriteFunc()
208 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_ParityLogOverwriteFunc()
212 if (node->dagHdr->status == rf_enable) { in rf_ParityLogOverwriteFunc()
217 (RF_Raid_t *) (node->dagHdr->raidPtr), in rf_ParityLogOverwriteFunc()
218 node->wakeFunc, node, node->dagHdr->tracerec, timer); in rf_ParityLogOverwriteFunc()
227 (node->wakeFunc) (node, ENOMEM); in rf_ParityLogOverwriteFunc()
233 rf_ParityLogUpdateUndoFunc(RF_DagNode_t *node) in rf_ParityLogUpdateUndoFunc() argument
238 rf_ParityLogOverwriteUndoFunc(RF_DagNode_t *node) in rf_ParityLogOverwriteUndoFunc() argument
247 rf_NullNodeFunc(RF_DagNode_t *node) in rf_NullNodeFunc() argument
249 node->status = rf_good; in rf_NullNodeFunc()
250 rf_FinishNode(node, RF_THREAD_CONTEXT); in rf_NullNodeFunc()
254 rf_NullNodeUndoFunc(RF_DagNode_t *node) in rf_NullNodeUndoFunc() argument
256 node->status = rf_undone; in rf_NullNodeUndoFunc()
257 rf_FinishNode(node, RF_THREAD_CONTEXT); in rf_NullNodeUndoFunc()
265 rf_DiskReadFuncForThreads(RF_DagNode_t *node) in rf_DiskReadFuncForThreads() argument
268 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskReadFuncForThreads()
269 void *bf = (void *) node->params[1].p; in rf_DiskReadFuncForThreads()
270 RF_StripeNum_t parityStripeID = (RF_StripeNum_t) node->params[2].v; in rf_DiskReadFuncForThreads()
271 unsigned priority = RF_EXTRACT_PRIORITY(node->params[3].v); in rf_DiskReadFuncForThreads()
272 unsigned which_ru = RF_EXTRACT_RU(node->params[3].v); in rf_DiskReadFuncForThreads()
273 RF_IoType_t iotype = (node->dagHdr->status == rf_enable) ? RF_IO_TYPE_READ : RF_IO_TYPE_NOP; in rf_DiskReadFuncForThreads()
274 RF_DiskQueue_t *dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskReadFuncForThreads()
277 bf, parityStripeID, which_ru, node->wakeFunc, node, in rf_DiskReadFuncForThreads()
279 node->dagHdr->tracerec, in rf_DiskReadFuncForThreads()
283 (void *) (node->dagHdr->raidPtr), 0, node->dagHdr->bp); in rf_DiskReadFuncForThreads()
285 node->dagFuncData = (void *) req; in rf_DiskReadFuncForThreads()
294 rf_DiskWriteFuncForThreads(RF_DagNode_t *node) in rf_DiskWriteFuncForThreads() argument
297 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskWriteFuncForThreads()
298 void *bf = (void *) node->params[1].p; in rf_DiskWriteFuncForThreads()
299 RF_StripeNum_t parityStripeID = (RF_StripeNum_t) node->params[2].v; in rf_DiskWriteFuncForThreads()
300 unsigned priority = RF_EXTRACT_PRIORITY(node->params[3].v); in rf_DiskWriteFuncForThreads()
301 unsigned which_ru = RF_EXTRACT_RU(node->params[3].v); in rf_DiskWriteFuncForThreads()
302 RF_IoType_t iotype = (node->dagHdr->status == rf_enable) ? RF_IO_TYPE_WRITE : RF_IO_TYPE_NOP; in rf_DiskWriteFuncForThreads()
303 RF_DiskQueue_t *dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskWriteFuncForThreads()
307 bf, parityStripeID, which_ru, node->wakeFunc, node, in rf_DiskWriteFuncForThreads()
309 node->dagHdr->tracerec, in rf_DiskWriteFuncForThreads()
313 (void *) (node->dagHdr->raidPtr), in rf_DiskWriteFuncForThreads()
314 0, node->dagHdr->bp); in rf_DiskWriteFuncForThreads()
316 node->dagFuncData = (void *) req; in rf_DiskWriteFuncForThreads()
325 rf_DiskUndoFunc(RF_DagNode_t *node) in rf_DiskUndoFunc() argument
328 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskUndoFunc()
329 RF_DiskQueue_t *dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskUndoFunc()
332 0L, 0, NULL, 0L, 0, node->wakeFunc, node, in rf_DiskUndoFunc()
334 node->dagHdr->tracerec, in rf_DiskUndoFunc()
338 (void *) (node->dagHdr->raidPtr), in rf_DiskUndoFunc()
341 node->dagFuncData = (void *) req; in rf_DiskUndoFunc()
353 RF_DagNode_t *node = v; in rf_GenericWakeupFunc() local
355 switch (node->status) { in rf_GenericWakeupFunc()
358 node->status = rf_bad; in rf_GenericWakeupFunc()
360 node->status = rf_good; in rf_GenericWakeupFunc()
365 node->status = rf_panic; in rf_GenericWakeupFunc()
367 node->status = rf_undone; in rf_GenericWakeupFunc()
371 printf("node->status is %d,", node->status); in rf_GenericWakeupFunc()
376 if (node->dagFuncData) in rf_GenericWakeupFunc()
377 rf_FreeDiskQueueData((RF_DiskQueueData_t *) node->dagFuncData); in rf_GenericWakeupFunc()
378 rf_FinishNode(node, RF_INTR_CONTEXT); in rf_GenericWakeupFunc()
408 rf_RegularXorFunc(RF_DagNode_t *node) in rf_RegularXorFunc() argument
410 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_RegularXorFunc()
412 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_RegularXorFunc()
418 if (node->dagHdr->status == rf_enable) { in rf_RegularXorFunc()
423 for (i = 0; i < node->numParams - 1; i += 2) in rf_RegularXorFunc()
424 if (node->params[i + 1].p != node->results[0]) { in rf_RegularXorFunc()
425 retcode = rf_XorIntoBuffer(raidPtr, (RF_PhysDiskAddr_t *) node->params[i].p, in rf_RegularXorFunc()
426 (char *) node->params[i + 1].p, (char *) node->results[0]); in rf_RegularXorFunc()
434 rf_GenericWakeupFunc(node, retcode); /* call wake func in rf_RegularXorFunc()
440 rf_SimpleXorFunc(RF_DagNode_t *node) in rf_SimpleXorFunc() argument
442 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_SimpleXorFunc()
445 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_SimpleXorFunc()
449 if (node->dagHdr->status == rf_enable) { in rf_SimpleXorFunc()
454 for (i = 0; i < node->numParams - 1; i += 2) in rf_SimpleXorFunc()
455 if (node->params[i + 1].p != node->results[0]) { in rf_SimpleXorFunc()
456 retcode = rf_bxor((char *) node->params[i + 1].p, (char *) node->results[0], in rf_SimpleXorFunc()
457 rf_RaidAddressToByte(raidPtr, ((RF_PhysDiskAddr_t *) node->params[i].p)->numSector)); in rf_SimpleXorFunc()
465 rf_GenericWakeupFunc(node, retcode); /* call wake func in rf_SimpleXorFunc()
477 rf_RecoveryXorFunc(RF_DagNode_t *node) in rf_RecoveryXorFunc() argument
479 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_RecoveryXorFunc()
481 RF_PhysDiskAddr_t *failedPDA = (RF_PhysDiskAddr_t *) node->params[node->numParams - 2].p; in rf_RecoveryXorFunc()
487 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_RecoveryXorFunc()
491 if (node->dagHdr->status == rf_enable) { in rf_RecoveryXorFunc()
495 for (i = 0; i < node->numParams - 2; i += 2) in rf_RecoveryXorFunc()
496 if (node->params[i + 1].p != node->results[0]) { in rf_RecoveryXorFunc()
497 pda = (RF_PhysDiskAddr_t *) node->params[i].p; in rf_RecoveryXorFunc()
498 srcbuf = (char *) node->params[i + 1].p; in rf_RecoveryXorFunc()
500 … destbuf = ((char *) node->results[0]) + rf_RaidAddressToByte(raidPtr, suoffset - failedSUOffset); in rf_RecoveryXorFunc()
509 rf_GenericWakeupFunc(node, retcode); in rf_RecoveryXorFunc()