Lines Matching refs:node

108 rf_TerminateFunc(RF_DagNode_t *node)  in rf_TerminateFunc()  argument
110 RF_ASSERT(node->dagHdr->numCommits == node->dagHdr->numCommitNodes); in rf_TerminateFunc()
111 node->status = rf_good; in rf_TerminateFunc()
112 return (rf_FinishNode(node, RF_THREAD_CONTEXT)); in rf_TerminateFunc()
116 rf_TerminateUndoFunc(RF_DagNode_t *node) in rf_TerminateUndoFunc() argument
136 rf_DiskReadMirrorIdleFunc(RF_DagNode_t *node) in rf_DiskReadMirrorIdleFunc() argument
143 rf_SelectMirrorDiskIdle(node); in rf_DiskReadMirrorIdleFunc()
144 return (rf_DiskReadFunc(node)); in rf_DiskReadMirrorIdleFunc()
148 rf_DiskReadMirrorPartitionFunc(RF_DagNode_t *node) in rf_DiskReadMirrorPartitionFunc() argument
155 rf_SelectMirrorDiskPartition(node); in rf_DiskReadMirrorPartitionFunc()
156 return (rf_DiskReadFunc(node)); in rf_DiskReadMirrorPartitionFunc()
160 rf_DiskReadMirrorUndoFunc(RF_DagNode_t *node) in rf_DiskReadMirrorUndoFunc() argument
172 rf_ParityLogUpdateFunc(RF_DagNode_t *node) in rf_ParityLogUpdateFunc() argument
174 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_ParityLogUpdateFunc()
175 caddr_t buf = (caddr_t) node->params[1].p; in rf_ParityLogUpdateFunc()
177 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_ParityLogUpdateFunc()
180 if (node->dagHdr->status == rf_enable) { in rf_ParityLogUpdateFunc()
183 (RF_Raid_t *) (node->dagHdr->raidPtr), in rf_ParityLogUpdateFunc()
184 node->wakeFunc, (void *) node, in rf_ParityLogUpdateFunc()
185 node->dagHdr->tracerec, timer); in rf_ParityLogUpdateFunc()
192 (node->wakeFunc) (node, ENOMEM); in rf_ParityLogUpdateFunc()
203 rf_ParityLogOverwriteFunc(RF_DagNode_t *node) in rf_ParityLogOverwriteFunc() argument
205 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_ParityLogOverwriteFunc()
206 caddr_t buf = (caddr_t) node->params[1].p; in rf_ParityLogOverwriteFunc()
208 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_ParityLogOverwriteFunc()
211 if (node->dagHdr->status == rf_enable) { in rf_ParityLogOverwriteFunc()
214 (RF_Raid_t *) (node->dagHdr->raidPtr), node->wakeFunc, in rf_ParityLogOverwriteFunc()
215 (void *) node, node->dagHdr->tracerec, timer); in rf_ParityLogOverwriteFunc()
222 (node->wakeFunc) (node, ENOMEM); in rf_ParityLogOverwriteFunc()
230 rf_ParityLogUpdateFunc(RF_DagNode_t *node) in rf_ParityLogUpdateFunc() argument
236 rf_ParityLogOverwriteFunc(RF_DagNode_t *node) in rf_ParityLogOverwriteFunc() argument
243 rf_ParityLogUpdateUndoFunc(RF_DagNode_t *node) in rf_ParityLogUpdateUndoFunc() argument
249 rf_ParityLogOverwriteUndoFunc(RF_DagNode_t *node) in rf_ParityLogOverwriteUndoFunc() argument
258 rf_NullNodeFunc(RF_DagNode_t *node) in rf_NullNodeFunc() argument
260 node->status = rf_good; in rf_NullNodeFunc()
261 return (rf_FinishNode(node, RF_THREAD_CONTEXT)); in rf_NullNodeFunc()
265 rf_NullNodeUndoFunc(RF_DagNode_t *node) in rf_NullNodeUndoFunc() argument
267 node->status = rf_undone; in rf_NullNodeUndoFunc()
268 return (rf_FinishNode(node, RF_THREAD_CONTEXT)); in rf_NullNodeUndoFunc()
276 rf_DiskReadFuncForThreads(RF_DagNode_t *node) in rf_DiskReadFuncForThreads() argument
279 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskReadFuncForThreads()
280 caddr_t buf = (caddr_t) node->params[1].p; in rf_DiskReadFuncForThreads()
281 RF_StripeNum_t parityStripeID = (RF_StripeNum_t) node->params[2].v; in rf_DiskReadFuncForThreads()
282 unsigned priority = RF_EXTRACT_PRIORITY(node->params[3].v); in rf_DiskReadFuncForThreads()
283 unsigned lock = RF_EXTRACT_LOCK_FLAG(node->params[3].v); in rf_DiskReadFuncForThreads()
284 unsigned unlock = RF_EXTRACT_UNLOCK_FLAG(node->params[3].v); in rf_DiskReadFuncForThreads()
285 unsigned which_ru = RF_EXTRACT_RU(node->params[3].v); in rf_DiskReadFuncForThreads()
287 RF_IoType_t iotype = (node->dagHdr->status == rf_enable) ? in rf_DiskReadFuncForThreads()
289 RF_DiskQueue_t **dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskReadFuncForThreads()
292 if (node->dagHdr->bp) in rf_DiskReadFuncForThreads()
293 b_proc = (void *) ((struct buf *) node->dagHdr->bp)->b_proc; in rf_DiskReadFuncForThreads()
301 (int (*) (void *, int)) node->wakeFunc, in rf_DiskReadFuncForThreads()
302 node, NULL, node->dagHdr->tracerec, in rf_DiskReadFuncForThreads()
303 (void *) (node->dagHdr->raidPtr), flags, b_proc); in rf_DiskReadFuncForThreads()
305 (node->wakeFunc) (node, ENOMEM); in rf_DiskReadFuncForThreads()
307 node->dagFuncData = (void *) req; in rf_DiskReadFuncForThreads()
318 rf_DiskWriteFuncForThreads(RF_DagNode_t *node) in rf_DiskWriteFuncForThreads() argument
321 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskWriteFuncForThreads()
322 caddr_t buf = (caddr_t) node->params[1].p; in rf_DiskWriteFuncForThreads()
323 RF_StripeNum_t parityStripeID = (RF_StripeNum_t) node->params[2].v; in rf_DiskWriteFuncForThreads()
324 unsigned priority = RF_EXTRACT_PRIORITY(node->params[3].v); in rf_DiskWriteFuncForThreads()
325 unsigned lock = RF_EXTRACT_LOCK_FLAG(node->params[3].v); in rf_DiskWriteFuncForThreads()
326 unsigned unlock = RF_EXTRACT_UNLOCK_FLAG(node->params[3].v); in rf_DiskWriteFuncForThreads()
327 unsigned which_ru = RF_EXTRACT_RU(node->params[3].v); in rf_DiskWriteFuncForThreads()
329 RF_IoType_t iotype = (node->dagHdr->status == rf_enable) ? in rf_DiskWriteFuncForThreads()
331 RF_DiskQueue_t **dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskWriteFuncForThreads()
334 if (node->dagHdr->bp) in rf_DiskWriteFuncForThreads()
335 b_proc = (void *) ((struct buf *) node->dagHdr->bp)->b_proc; in rf_DiskWriteFuncForThreads()
343 (int (*) (void *, int)) node->wakeFunc, (void *) node, NULL, in rf_DiskWriteFuncForThreads()
344 node->dagHdr->tracerec, (void *) (node->dagHdr->raidPtr), in rf_DiskWriteFuncForThreads()
348 (node->wakeFunc) (node, ENOMEM); in rf_DiskWriteFuncForThreads()
350 node->dagFuncData = (void *) req; in rf_DiskWriteFuncForThreads()
362 rf_DiskUndoFunc(RF_DagNode_t *node) in rf_DiskUndoFunc() argument
365 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskUndoFunc()
366 RF_DiskQueue_t **dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskUndoFunc()
369 (int (*) (void *, int)) node->wakeFunc, (void *) node, in rf_DiskUndoFunc()
370 NULL, node->dagHdr->tracerec, (void *) (node->dagHdr->raidPtr), in rf_DiskUndoFunc()
373 (node->wakeFunc) (node, ENOMEM); in rf_DiskUndoFunc()
375 node->dagFuncData = (void *) req; in rf_DiskUndoFunc()
387 rf_DiskUnlockFuncForThreads(RF_DagNode_t *node) in rf_DiskUnlockFuncForThreads() argument
390 RF_PhysDiskAddr_t *pda = (RF_PhysDiskAddr_t *) node->params[0].p; in rf_DiskUnlockFuncForThreads()
391 RF_DiskQueue_t **dqs = ((RF_Raid_t *) (node->dagHdr->raidPtr))->Queues; in rf_DiskUnlockFuncForThreads()
394 (int (*) (void *, int)) node->wakeFunc, (void *) node, in rf_DiskUnlockFuncForThreads()
395 NULL, node->dagHdr->tracerec, (void *) (node->dagHdr->raidPtr), in rf_DiskUnlockFuncForThreads()
398 (node->wakeFunc) (node, ENOMEM); in rf_DiskUnlockFuncForThreads()
400 node->dagFuncData = (void *) req; in rf_DiskUnlockFuncForThreads()
414 rf_GenericWakeupFunc(RF_DagNode_t *node, int status) in rf_GenericWakeupFunc() argument
416 switch (node->status) { in rf_GenericWakeupFunc()
418 node->status = rf_bwd2; in rf_GenericWakeupFunc()
419 if (node->dagFuncData) in rf_GenericWakeupFunc()
421 node->dagFuncData); in rf_GenericWakeupFunc()
422 return (rf_DiskWriteFuncForThreads(node)); in rf_GenericWakeupFunc()
426 node->status = rf_bad; in rf_GenericWakeupFunc()
428 node->status = rf_good; in rf_GenericWakeupFunc()
433 node->status = rf_panic; in rf_GenericWakeupFunc()
435 node->status = rf_undone; in rf_GenericWakeupFunc()
439 printf("node->status is %d,", node->status); in rf_GenericWakeupFunc()
444 if (node->dagFuncData) in rf_GenericWakeupFunc()
445 rf_FreeDiskQueueData((RF_DiskQueueData_t *) node->dagFuncData); in rf_GenericWakeupFunc()
446 return (rf_FinishNode(node, RF_INTR_CONTEXT)); in rf_GenericWakeupFunc()
478 rf_RegularXorFunc(RF_DagNode_t *node) in rf_RegularXorFunc() argument
480 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_RegularXorFunc()
481 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_RegularXorFunc()
486 if (node->dagHdr->status == rf_enable) { in rf_RegularXorFunc()
489 for (i = 0; i < node->numParams - 1; i += 2) in rf_RegularXorFunc()
490 if (node->params[i + 1].p != node->results[0]) { in rf_RegularXorFunc()
492 (RF_PhysDiskAddr_t *) node->params[i].p, in rf_RegularXorFunc()
493 (char *) node->params[i + 1].p, in rf_RegularXorFunc()
494 (char *) node->results[0], in rf_RegularXorFunc()
495 node->dagHdr->bp); in rf_RegularXorFunc()
502 return (rf_GenericWakeupFunc(node, retcode)); in rf_RegularXorFunc()
507 rf_SimpleXorFunc(RF_DagNode_t *node) in rf_SimpleXorFunc() argument
509 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_SimpleXorFunc()
511 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_SimpleXorFunc()
514 if (node->dagHdr->status == rf_enable) { in rf_SimpleXorFunc()
517 for (i = 0; i < node->numParams - 1; i += 2) in rf_SimpleXorFunc()
518 if (node->params[i + 1].p != node->results[0]) { in rf_SimpleXorFunc()
520 node->params[i + 1].p, in rf_SimpleXorFunc()
521 (char *) node->results[0], in rf_SimpleXorFunc()
524 node->params[i].p)->numSector), in rf_SimpleXorFunc()
525 (struct buf *) node->dagHdr->bp); in rf_SimpleXorFunc()
532 return (rf_GenericWakeupFunc(node, retcode)); in rf_SimpleXorFunc()
544 rf_RecoveryXorFunc(RF_DagNode_t *node) in rf_RecoveryXorFunc() argument
546 RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; in rf_RecoveryXorFunc()
549 (RF_PhysDiskAddr_t *) node->params[node->numParams - 2].p; in rf_RecoveryXorFunc()
555 RF_AccTraceEntry_t *tracerec = node->dagHdr->tracerec; in rf_RecoveryXorFunc()
558 if (node->dagHdr->status == rf_enable) { in rf_RecoveryXorFunc()
560 for (i = 0; i < node->numParams - 2; i += 2) in rf_RecoveryXorFunc()
561 if (node->params[i + 1].p != node->results[0]) { in rf_RecoveryXorFunc()
562 pda = (RF_PhysDiskAddr_t *) node->params[i].p; in rf_RecoveryXorFunc()
563 srcbuf = (char *) node->params[i + 1].p; in rf_RecoveryXorFunc()
566 destbuf = ((char *) node->results[0]) + in rf_RecoveryXorFunc()
571 pda->numSector), node->dagHdr->bp); in rf_RecoveryXorFunc()
577 return (rf_GenericWakeupFunc(node, retcode)); in rf_RecoveryXorFunc()