Lines Matching full:mc

268 	mirror_child_t *mc;
327 mc = &mm->mm_child[c];
329 mc->mc_vd = vdev_lookup_top(spa, DVA_GET_VDEV(&dva[c]));
330 mc->mc_offset = DVA_GET_OFFSET(&dva[c]);
331 if (mc->mc_vd == NULL) {
374 mc = &mm->mm_child[c];
375 mc->mc_vd = vd->vdev_child[c];
376 mc->mc_offset = zio->io_offset;
378 if (vdev_mirror_rebuilding(mc->mc_vd))
379 mm->mm_rebuilding = mc->mc_rebuilding = B_TRUE;
443 mirror_child_t *mc = zio->io_private;
445 mc->mc_error = zio->io_error;
446 mc->mc_tried = 1;
447 mc->mc_skipped = 0;
496 vdev_mirror_child_readable(mirror_child_t *mc)
498 vdev_t *vd = mc->mc_vd;
501 return (vdev_draid_readable(vd, mc->mc_offset));
507 vdev_mirror_child_missing(mirror_child_t *mc, uint64_t txg, uint64_t size)
509 vdev_t *vd = mc->mc_vd;
512 return (vdev_draid_missing(vd, mc->mc_offset, txg, size));
539 mirror_child_t *mc;
541 mc = &mm->mm_child[c];
542 if (mc->mc_tried || mc->mc_skipped)
545 if (mc->mc_vd == NULL ||
546 !vdev_mirror_child_readable(mc)) {
547 mc->mc_error = SET_ERROR(ENXIO);
548 mc->mc_tried = 1; /* don't even try */
549 mc->mc_skipped = 1;
553 if (vdev_mirror_child_missing(mc, txg, 1)) {
554 mc->mc_error = SET_ERROR(ESTALE);
555 mc->mc_skipped = 1;
556 mc->mc_speculative = 1;
560 if (mc->mc_vd->vdev_ops == &vdev_draid_spare_ops) {
566 mc->mc_load = vdev_mirror_load(mm, mc->mc_vd, mc->mc_offset);
567 if (mc->mc_load > lowest_load)
570 if (mc->mc_load < lowest_load) {
571 lowest_load = mc->mc_load;
607 mirror_child_t *mc;
632 mc = &mm->mm_child[c];
635 if (!vdev_mirror_child_readable(mc)) {
636 mc->mc_error = SET_ERROR(ENXIO);
637 mc->mc_tried = 1;
638 mc->mc_skipped = 1;
642 mc->mc_abd = first ? zio->io_abd :
646 mc->mc_vd, mc->mc_offset, mc->mc_abd,
649 vdev_mirror_child_done, mc));
671 mc = &mm->mm_child[c];
683 mm->mm_rebuilding && !mc->mc_rebuilding) {
688 mc->mc_vd, mc->mc_offset, zio->io_abd, zio->io_size,
690 vdev_mirror_child_done, mc));
702 mirror_child_t *mc = &mm->mm_child[c];
703 int s = mc->mc_speculative;
704 error[s] = zio_worst_error(error[s], mc->mc_error);
714 mirror_child_t *mc;
724 mc = &mm->mm_child[c];
726 if (mc->mc_error) {
727 if (!mc->mc_skipped)
729 } else if (mc->mc_tried) {
793 mc = &mm->mm_child[c];
796 mc->mc_vd, mc->mc_offset, zio->io_abd, zio->io_size,
798 vdev_mirror_child_done, mc));
821 mc = &mm->mm_child[c];
822 if (mc->mc_error || !mc->mc_tried)
825 if (abd_cmp(mc->mc_abd, best_abd) != 0)
834 mc->mc_vd->vdev_ops ==
836 pref_abd = mc->mc_abd;
842 if (mc->mc_abd == zio->io_abd)
843 best_abd = mc->mc_abd;
856 mc = &mm->mm_child[c];
857 if (mc->mc_error || !mc->mc_tried)
859 if (mc->mc_abd == zio->io_abd) {
860 best_abd = mc->mc_abd;
869 mc = &mm->mm_child[c];
870 if (mc->mc_abd != zio->io_abd)
871 abd_free(mc->mc_abd);
872 mc->mc_abd = NULL;
896 mc = &mm->mm_child[c];
898 if (mc->mc_error == 0) {
899 vdev_ops_t *ops = mc->mc_vd->vdev_ops;
901 if (mc->mc_tried)
919 !vdev_dtl_contains(mc->mc_vd, DTL_PARTIAL,
922 mc->mc_error = SET_ERROR(ESTALE);
926 mc->mc_vd, mc->mc_offset,