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