Lines Matching refs:un

65 static int	raid_replay_error(mr_unit_t *un, int column);
72 * PARAMETERS: mr_unit_t *un - pointer to the unit structure
73 * mr_unit_t *un - pointer to the unit structure
77 raid_rply_dealloc(mr_unit_t *un,
85 for (i = 0, tmp = *bufs; i < un->un_totalcolumncnt; i++, tmp++) {
95 kmem_free(*bufs, sizeof (raid_rplybuf_t) * un->un_totalcolumncnt);
98 kmem_free(rwbuf1->rpl_data, dbtob(un->un_iosize));
106 kmem_free(rwbuf2->rpl_data, dbtob(un->un_iosize));
116 raid_rply_alloc(mr_unit_t *un,
126 *bufs = kmem_zalloc(sizeof (raid_rplybuf_t) * un->un_totalcolumncnt,
133 for (i = 0, tmp = *bufs; i < un->un_totalcolumncnt; i++, tmp++) {
150 rwbuf1->rpl_data = kmem_zalloc(dbtob(un->un_iosize), KM_SLEEP);
154 rwbuf2->rpl_data = kmem_zalloc(dbtob(un->un_iosize), KM_SLEEP);
305 * PARAMETERS: mr_unit_t *un - pointer to the unit structure
312 raid_pwhdr_read(mr_unit_t *un, int pw_slot, int column, raid_rplybuf_t *bufp)
321 bp->b_lblkno = un->un_column[column].un_pwstart +
322 pw_slot * un->un_iosize;
323 bp->b_edev = md_dev64_to_dev(un->un_column[column].un_dev);
334 * PARAMETERS: mr_unit_t *un - pointer to the unit structure
341 raid_pw_read(mr_unit_t *un, int column, uint_t slot, raid_rplybuf_t *bufp)
345 uint_t blkcnt = un->un_iosize;
349 if (!COLUMN_ISUP(un, column))
360 bp->b_edev = md_dev64_to_dev(un->un_column[column].un_dev);
361 bp->b_lblkno = un->un_column[column].un_pwstart + (slot * blkcnt);
365 error = raid_replay_error(un, column);
374 * PARAMETERS: mr_unit_t *un - pointer to the unit structure
381 raid_pw_write(mr_unit_t *un, int column, raid_pwhdr_t *pwhp,
388 if (!COLUMN_ISUP(un, column))
399 bp->b_edev = md_dev64_to_dev(un->un_column[column].un_dev);
400 bp->b_lblkno = un->un_column[column].un_devstart + pwhp->rpw_blkno;
404 error = raid_replay_error(un, column);
437 * PARAMETERS: mr_unit_t *un - pointer to unit structure
449 raid_rply_verify(mr_unit_t *un, int col1, int goodsum1, int *do_1,
456 if (COLUMN_ISUP(un, col1)) {
459 if (COLUMN_ISUP(un, col2)) {
477 * PARAMETERS: mr_unit_t *un - pointer to the unit structure
485 mr_unit_t *un,
509 error = raid_pw_read(un, eachp->rpl_column1,
523 error = raid_pw_read(un, eachp->rpl_column2, eachp->rpl_slot2,
538 raid_rply_verify(un, eachp->rpl_column1, good_pw1, &do_1,
543 error = raid_pw_write(un, eachp->rpl_column1,
550 error = raid_pw_write(un, eachp->rpl_column2,
564 (! COLUMN_ISUP(un, eachp->rpl_pwhdr1.rpw_columnnum))) {
566 error = raid_pw_read(un, eachp->rpl_column1,
575 error = raid_pw_write(un, eachp->rpl_column1,
589 replay_line(mr_unit_t *un, raid_rplylst_t *eachp, raid_rplybuf_t *rplybuf)
621 error = raid_pw_read(un, eachp->rpl_column1, eachp->rpl_slot1, rplybuf);
640 ASSERT(col2 < un->un_totalcolumncnt);
649 error = raid_pw_read(un, col2, eachpn->rpl_slot1, rplybuf);
661 down = raid_state_cnt(un, RCS_ERRED);
662 if ((i != un->un_totalcolumncnt) &&
663 (i != (un->un_totalcolumncnt - down)))
670 error = raid_pw_read(un, col, eachpn->rpl_slot1, rplybuf);
671 error = raid_pw_write(un, col, &eachpn->rpl_pwhdr1, rplybuf);
687 raid_replay_error(mr_unit_t *un, int column)
691 raid_set_state(un, column, RCS_ERRED, 0);
692 raid_commit(un, NULL);
694 if (UNIT_STATE(un) == RUS_LAST_ERRED) {
697 MD_UN2SET(un), MD_SID(un));
698 } else if (UNIT_STATE(un) == RUS_ERRED) {
700 MD_UN2SET(un), MD_SID(un));
709 * PARAMETERS: mr_unit_t *un - pointer to an unit structure
714 raid_replay(mr_unit_t *un)
726 diskaddr_t max_blkno = un->un_segsize * un->un_segsincolumn;
727 int totalcolumns = un->un_totalcolumncnt;
729 raid_rply_alloc(un, &rplybuf, &rwbuf1, &rwbuf2);
732 for (i = 0; i < un->un_pwcnt; i++) {
734 for (j = 0; j < un->un_totalcolumncnt; j++) {
735 if (COLUMN_ISUP(un, j)) {
736 raid_pwhdr_read(un, i, j, &rplybuf[j]);
740 error = raid_replay_error(un, j);
746 if (un->c.un_revision & MD_64BIT_META_DEV) {
765 if (pwhdrp->rpw_blkcnt > (un->un_iosize - 1)) {
797 error = raid_rplyeach(un, eachp, &rwbuf1, &rwbuf2);
799 error = replay_line(un, eachp, &rwbuf1);
811 for (j = 0; j < un->un_totalcolumncnt; j++) {
812 if (COLUMN_ISUP(un, j)) {
813 colptr = &un->un_column[j];
814 if (init_pw_area(un, colptr->un_dev,
821 raid_rply_dealloc(un, &rplybuf, &rwbuf1, &rwbuf2);
835 raid_rply_dealloc(un, &rplybuf, &rwbuf1, &rwbuf2);
838 un->un_pwid = 1;