Lines Matching refs:plex

58 enum requeststatus build_rq_buffer(struct rqelement *rqe, struct plex *plex);
474 struct plex *plex; in bre() local
487 plex = &PLEX[plexno]; /* point to the plex */ in bre()
489 switch (plex->organization) { in bre()
492 for (sdno = 0; sdno < plex->subdisks; sdno++) { in bre()
493 sd = &SD[plex->sdnos[sdno]]; in bre()
535 if (build_rq_buffer(rqe, plex)) { /* build the buffer */ in bre()
563 if (*diskaddr >= plex->length) /* beyond the end of the plex */ in bre()
567 stripeoffset = *diskaddr % (plex->stripesize * plex->subdisks); in bre()
573 sdno = stripeoffset / plex->stripesize; in bre()
576 blockoffset = stripeoffset % plex->stripesize; in bre()
578 sd = &SD[plex->sdnos[sdno]]; /* the subdisk in question */ in bre()
589 rqe->sdoffset = stripebase / plex->subdisks + blockoffset; /* start offset in this subdisk */ in bre()
593 plex->stripesize - blockoffset); in bre()
631 plex->name, in bre()
644 if (build_rq_buffer(rqe, plex)) { /* build the buffer */ in bre()
652 &&(*diskaddr < plex->length)) { /* and there's more to come */ in bre()
653 plex->multiblock++; /* count another one */ in bre()
654 if (sdno == plex->subdisks - 1) /* last subdisk, */ in bre()
655 plex->multistripe++; /* another stripe as well */ in bre()
671 log(LOG_ERR, "vinum: invalid plex type %d in bre\n", plex->organization); in bre()
706 status = bre(rq, vol->plex[plexindex], &diskaddr, diskend); /* build up a request */ in build_read_request()
739 bre(rq, vol->plex[plexno], &diskaddr, diskend); /* try a request */ in build_read_request()
786 bre(rq, vol->plex[plexno], &diskstart, diskend)); in build_write_request()
793 build_rq_buffer(struct rqelement *rqe, struct plex *plex) in build_rq_buffer() argument