Lines Matching refs:dreq
82 dmover_process(struct dmover_request *dreq) in dmover_process() argument
84 struct dmover_session *dses = dreq->dreq_session; in dmover_process()
90 if ((dreq->dreq_flags & DMOVER_REQ_WAIT) != 0 && in dmover_process()
91 dreq->dreq_callback != NULL) in dmover_process()
96 dreq->dreq_flags &= __DMOVER_REQ_FLAGS_PRESERVE; in dmover_process()
106 dreq->dreq_assignment = das; in dmover_process()
108 dmover_session_insque(dses, dreq); in dmover_process()
109 dmover_backend_insque(dmb, dreq); in dmover_process()
118 if (dreq->dreq_flags & DMOVER_REQ_WAIT) { in dmover_process()
121 while ((dreq->dreq_flags & DMOVER_REQ_DONE) == 0) in dmover_process()
122 (void) tsleep(dreq, PRIBIO, "dmover", 0); in dmover_process()
134 dmover_done(struct dmover_request *dreq) in dmover_done() argument
136 struct dmover_session *dses = dreq->dreq_session; in dmover_done()
143 dmover_session_remque(dses, dreq); in dmover_done()
148 dreq->dreq_flags |= DMOVER_REQ_DONE; in dmover_done()
149 dreq->dreq_flags &= ~DMOVER_REQ_RUNNING; in dmover_done()
150 dreq->dreq_assignment = NULL; in dmover_done()
152 if (dreq->dreq_callback != NULL) { in dmover_done()
154 TAILQ_INSERT_TAIL(&dmover_completed_q, dreq, dreq_dmbq); in dmover_done()
157 } else if (dreq->dreq_flags & DMOVER_REQ_WAIT) in dmover_done()
158 wakeup(dreq); in dmover_done()
171 struct dmover_request *dreq; in dmover_complete() local
175 if ((dreq = TAILQ_FIRST(&dmover_completed_q)) != NULL) in dmover_complete()
176 TAILQ_REMOVE(&dmover_completed_q, dreq, dreq_dmbq); in dmover_complete()
179 if (dreq == NULL) in dmover_complete()
182 (*dreq->dreq_callback)(dreq); in dmover_complete()