Lines Matching defs:rm_col

134 	raidz_col_t rm_col[1];		/* Flexible array of I/O columns */
270 if (rm->rm_col[c].rc_data != NULL)
271 zio_buf_free(rm->rm_col[c].rc_data,
272 rm->rm_col[c].rc_size);
274 if (rm->rm_col[c].rc_gdata != NULL)
275 zio_buf_free(rm->rm_col[c].rc_gdata,
276 rm->rm_col[c].rc_size);
281 size += rm->rm_col[c].rc_size;
286 kmem_free(rm, offsetof(raidz_map_t, rm_col[rm->rm_scols]));
321 const char *bad = rm->rm_col[c].rc_data;
334 if (rm->rm_col[0].rc_gdata == NULL) {
339 * Set up the rm_col[]s to generate the parity for
344 bad_parity[x] = rm->rm_col[x].rc_data;
345 rm->rm_col[x].rc_data = rm->rm_col[x].rc_gdata =
346 zio_buf_alloc(rm->rm_col[x].rc_size);
352 rm->rm_col[x].rc_data = buf;
353 buf += rm->rm_col[x].rc_size;
363 rm->rm_col[x].rc_data = bad_parity[x];
367 rm->rm_col[x].rc_data = buf;
368 buf += rm->rm_col[x].rc_size;
372 ASSERT3P(rm->rm_col[c].rc_gdata, !=, NULL);
373 good = rm->rm_col[c].rc_gdata;
379 good += rm->rm_col[x].rc_size;
424 size += rm->rm_col[c].rc_size;
429 raidz_col_t *col = &rm->rm_col[c];
497 rm = kmem_alloc(offsetof(raidz_map_t, rm_col[scols]), KM_SLEEP);
520 rm->rm_col[c].rc_devidx = col;
521 rm->rm_col[c].rc_offset = coff;
522 rm->rm_col[c].rc_data = NULL;
523 rm->rm_col[c].rc_gdata = NULL;
524 rm->rm_col[c].rc_error = 0;
525 rm->rm_col[c].rc_tried = 0;
526 rm->rm_col[c].rc_skipped = 0;
529 rm->rm_col[c].rc_size = 0;
531 rm->rm_col[c].rc_size = (q + 1) << unit_shift;
533 rm->rm_col[c].rc_size = q << unit_shift;
535 asize += rm->rm_col[c].rc_size;
546 rm->rm_col[c].rc_data =
547 zio_buf_alloc(rm->rm_col[c].rc_size);
550 rm->rm_col[c].rc_data = data;
553 rm->rm_col[c].rc_data =
554 (char *)rm->rm_col[c - 1].rc_data +
555 rm->rm_col[c - 1].rc_size;
580 ASSERT(rm->rm_col[0].rc_size == rm->rm_col[1].rc_size);
583 devidx = rm->rm_col[0].rc_devidx;
584 o = rm->rm_col[0].rc_offset;
585 rm->rm_col[0].rc_devidx = rm->rm_col[1].rc_devidx;
586 rm->rm_col[0].rc_offset = rm->rm_col[1].rc_offset;
587 rm->rm_col[1].rc_devidx = devidx;
588 rm->rm_col[1].rc_offset = o;
603 pcount = rm->rm_col[VDEV_RAIDZ_P].rc_size / sizeof (src[0]);
606 src = rm->rm_col[c].rc_data;
607 p = rm->rm_col[VDEV_RAIDZ_P].rc_data;
608 ccount = rm->rm_col[c].rc_size / sizeof (src[0]);
630 pcnt = rm->rm_col[VDEV_RAIDZ_P].rc_size / sizeof (src[0]);
631 ASSERT(rm->rm_col[VDEV_RAIDZ_P].rc_size ==
632 rm->rm_col[VDEV_RAIDZ_Q].rc_size);
635 src = rm->rm_col[c].rc_data;
636 p = rm->rm_col[VDEV_RAIDZ_P].rc_data;
637 q = rm->rm_col[VDEV_RAIDZ_Q].rc_data;
639 ccnt = rm->rm_col[c].rc_size / sizeof (src[0]);
682 pcnt = rm->rm_col[VDEV_RAIDZ_P].rc_size / sizeof (src[0]);
683 ASSERT(rm->rm_col[VDEV_RAIDZ_P].rc_size ==
684 rm->rm_col[VDEV_RAIDZ_Q].rc_size);
685 ASSERT(rm->rm_col[VDEV_RAIDZ_P].rc_size ==
686 rm->rm_col[VDEV_RAIDZ_R].rc_size);
689 src = rm->rm_col[c].rc_data;
690 p = rm->rm_col[VDEV_RAIDZ_P].rc_data;
691 q = rm->rm_col[VDEV_RAIDZ_Q].rc_data;
692 r = rm->rm_col[VDEV_RAIDZ_R].rc_data;
694 ccnt = rm->rm_col[c].rc_size / sizeof (src[0]);
770 xcount = rm->rm_col[x].rc_size / sizeof (src[0]);
771 ASSERT(xcount <= rm->rm_col[VDEV_RAIDZ_P].rc_size / sizeof (src[0]));
774 src = rm->rm_col[VDEV_RAIDZ_P].rc_data;
775 dst = rm->rm_col[x].rc_data;
781 src = rm->rm_col[c].rc_data;
782 dst = rm->rm_col[x].rc_data;
787 ccount = rm->rm_col[c].rc_size / sizeof (src[0]);
808 xcount = rm->rm_col[x].rc_size / sizeof (src[0]);
809 ASSERT(xcount <= rm->rm_col[VDEV_RAIDZ_Q].rc_size / sizeof (src[0]));
812 src = rm->rm_col[c].rc_data;
813 dst = rm->rm_col[x].rc_data;
818 ccount = rm->rm_col[c].rc_size / sizeof (src[0]);
842 src = rm->rm_col[VDEV_RAIDZ_Q].rc_data;
843 dst = rm->rm_col[x].rc_data;
870 ASSERT(rm->rm_col[x].rc_size >= rm->rm_col[y].rc_size);
879 pdata = rm->rm_col[VDEV_RAIDZ_P].rc_data;
880 qdata = rm->rm_col[VDEV_RAIDZ_Q].rc_data;
881 xsize = rm->rm_col[x].rc_size;
882 ysize = rm->rm_col[y].rc_size;
884 rm->rm_col[VDEV_RAIDZ_P].rc_data =
885 zio_buf_alloc(rm->rm_col[VDEV_RAIDZ_P].rc_size);
886 rm->rm_col[VDEV_RAIDZ_Q].rc_data =
887 zio_buf_alloc(rm->rm_col[VDEV_RAIDZ_Q].rc_size);
888 rm->rm_col[x].rc_size = 0;
889 rm->rm_col[y].rc_size = 0;
893 rm->rm_col[x].rc_size = xsize;
894 rm->rm_col[y].rc_size = ysize;
898 pxy = rm->rm_col[VDEV_RAIDZ_P].rc_data;
899 qxy = rm->rm_col[VDEV_RAIDZ_Q].rc_data;
900 xd = rm->rm_col[x].rc_data;
901 yd = rm->rm_col[y].rc_data;
933 zio_buf_free(rm->rm_col[VDEV_RAIDZ_P].rc_data,
934 rm->rm_col[VDEV_RAIDZ_P].rc_size);
935 zio_buf_free(rm->rm_col[VDEV_RAIDZ_Q].rc_data,
936 rm->rm_col[VDEV_RAIDZ_Q].rc_size);
941 rm->rm_col[VDEV_RAIDZ_P].rc_data = pdata;
942 rm->rm_col[VDEV_RAIDZ_Q].rc_data = qdata;
1257 src = rm->rm_col[c].rc_data;
1258 ccount = rm->rm_col[c].rc_size;
1265 dst[j] = rm->rm_col[cc].rc_data;
1266 dcount[j] = rm->rm_col[cc].rc_size;
1269 ASSERT(ccount >= rm->rm_col[missing[0]].rc_size || i > 0);
1431 } else if (rm->rm_col[c].rc_error != 0) {
1643 rc = &rm->rm_col[c];
1751 rc = &rm->rm_col[c];
1767 rc = &rm->rm_col[c];
1783 rc = &rm->rm_col[c];
1803 rc = &rm->rm_col[c];
1901 rc = &rm->rm_col[c];
1911 rc = &rm->rm_col[c];
1936 error = zio_worst_error(error, rm->rm_col[c].rc_error);
1983 while (rm->rm_col[c].rc_error != 0) {
2003 orig[n - 1] = zio_buf_alloc(rm->rm_col[0].rc_size);
2021 rc = &rm->rm_col[c];
2035 rc = &rm->rm_col[c];
2052 rc = &rm->rm_col[c];
2063 rm->rm_col[next].rc_error != 0; next++)
2079 rm->rm_col[c].rc_error != 0; c++)
2091 zio_buf_free(orig[i], rm->rm_col[0].rc_size);
2140 rc = &rm->rm_col[c];
2234 rc = &rm->rm_col[c];
2286 if (rm->rm_col[c].rc_tried)
2291 rc = &rm->rm_col[c];
2343 rc = &rm->rm_col[c];
2369 rc = &rm->rm_col[c];