<dec f='src/src/sys/dev/raidframe/rf_dagffwr.h' l='53' type='void rf_CommonCreateLargeWriteDAG(RF_Raid_t * raidPtr, RF_AccessStripeMap_t * asmap, RF_DagHeader_t * dag_h, void * bp, RF_RaidAccessFlags_t flags, RF_AllocListElem_t * allocList, int nfaults, int (*)(RF_DagNode_t *) redFunc, int allowBufferRecycle)'/>
<use f='src/src/sys/dev/raidframe/rf_dagffwr.c' l='119' u='c' c='rf_CreateLargeWriteDAG'/>
<def f='src/src/sys/dev/raidframe/rf_dagffwr.c' l='161' ll='486' type='void rf_CommonCreateLargeWriteDAG(RF_Raid_t * raidPtr, RF_AccessStripeMap_t * asmap, RF_DagHeader_t * dag_h, void * bp, RF_RaidAccessFlags_t flags, RF_AllocListElem_t * allocList, int nfaults, int (*)(RF_DagNode_t *) redFunc, int allowBufferRecycle)'/>
<doc f='src/src/sys/dev/raidframe/rf_dagffwr.c' l='130'>/******************************************************************************
 *
 * creates a DAG to perform a large-write operation:
 *
 *           / Rod \           / Wnd \
 * H -- block- Rod - Xor - Cmt - Wnd --- T
 *           \ Rod /          \  Wnp /
 *                             \[Wnq]/
 *
 * The XOR node also does the Q calculation in the P+Q architecture.
 * All nodes are before the commit node (Cmt) are assumed to be atomic and
 * undoable - or - they make no changes to permanent state.
 *
 * Rod = read old data
 * Cmt = commit node
 * Wnp = write new parity
 * Wnd = write new data
 * Wnq = write new &quot;q&quot;
 * [] denotes optional segments in the graph
 *
 * Parameters:  raidPtr   - description of the physical array
 *              asmap     - logical &amp; physical addresses for this access
 *              bp        - buffer ptr (holds write data)
 *              flags     - general flags (e.g. disk locking)
 *              allocList - list of memory allocated in DAG creation
 *              nfaults   - number of faults array can tolerate
 *                          (equal to # redundancy units in stripe)
 *              redfuncs  - list of redundancy generating functions
 *
 *****************************************************************************/</doc>
