Home | History | Annotate | Download | only in ata

Lines Matching defs:cbp

140 #define        CBUF_PUT(cbp)   pool_cache_put(sc->sc_cbufpool, (cbp))
271 struct cbuf *cbp = obj;
275 buf_init(&cbp->cb_buf);
284 struct cbuf *cbp = obj;
286 buf_destroy(&cbp->cb_buf);
293 struct cbuf *cbp;
295 cbp = CBUF_GET();
296 if (cbp == NULL)
298 cbp->cb_buf.b_flags = bp->b_flags;
299 cbp->cb_buf.b_oflags = bp->b_oflags;
300 cbp->cb_buf.b_cflags = bp->b_cflags;
301 cbp->cb_buf.b_iodone = sc->sc_iodone;
302 cbp->cb_buf.b_proc = bp->b_proc;
303 cbp->cb_buf.b_vp = sc->sc_vnodes[comp];
304 cbp->cb_buf.b_objlock = sc->sc_vnodes[comp]->v_interlock;
305 cbp->cb_buf.b_blkno = bn + sc->sc_aai->aai_offset;
306 cbp->cb_buf.b_data = addr;
307 cbp->cb_buf.b_bcount = bcount;
310 cbp->cb_obp = bp;
311 cbp->cb_sc = sc;
312 cbp->cb_comp = comp;
313 cbp->cb_other = NULL;
314 cbp->cb_flags = 0;
316 return cbp;
323 struct cbuf *cbp;
325 while ((cbp = SIMPLEQ_FIRST(&sc->sc_cbufq)) != NULL) {
327 if ((cbp->cb_buf.b_flags & B_READ) == 0) {
328 mutex_enter(cbp->cb_buf.b_vp->v_interlock);
329 cbp->cb_buf.b_vp->v_numoutput++;
330 mutex_exit(cbp->cb_buf.b_vp->v_interlock);
332 VOP_STRATEGY(cbp->cb_buf.b_vp, &cbp->cb_buf);
342 struct cbuf *cbp;
367 cbp = ld_ataraid_make_cbuf(sc, bp, comp, bn, addr, rcount);
368 if (cbp == NULL) {
370 while ((cbp = SIMPLEQ_FIRST(&sc->sc_cbufq)) != NULL) {
372 CBUF_PUT(cbp);
384 SIMPLEQ_INSERT_TAIL(&sc->sc_cbufq, cbp, cb_q);
400 struct cbuf *cbp, *other_cbp;
454 cbp = ld_ataraid_make_cbuf(sc, bp, comp, cbn, addr, rcount);
455 if (cbp == NULL) {
460 while ((cbp = SIMPLEQ_FIRST(&sc->sc_cbufq)) != NULL) {
462 CBUF_PUT(cbp);
466 SIMPLEQ_INSERT_TAIL(&sc->sc_cbufq, cbp, cb_q);
477 other_cbp->cb_other = cbp;
478 cbp->cb_other = other_cbp;
498 struct cbuf *cbp = (struct cbuf *) vbp, *other_cbp;
499 struct buf *bp = cbp->cb_obp;
500 struct ld_ataraid_softc *sc = cbp->cb_sc;
509 iodone = cbp->cb_flags & CBUF_IODONE;
510 other_cbp = cbp->cb_other;
515 if (cbp->cb_buf.b_error != 0) {
519 adi = &aai->aai_disks[cbp->cb_comp];
523 device_xname(sc->sc_ld.sc_dv), bp->b_error, cbp->cb_comp,
531 (cbp->cb_buf.b_flags & B_READ) != 0 &&
533 cbp->cb_comp < aai->aai_width) {
534 cbp->cb_comp += aai->aai_width;
535 adi = &aai->aai_disks[cbp->cb_comp];
537 cbp->cb_buf.b_error = 0;
538 VOP_STRATEGY(cbp->cb_buf.b_vp, &cbp->cb_buf);
551 bp->b_error = cbp->cb_buf.b_error ?
552 cbp->cb_buf.b_error : EIO;
565 count = cbp->cb_buf.b_bcount;
566 CBUF_PUT(cbp);