Lines Matching refs:rr

650 vdev_draid_map_alloc_write(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr)  in vdev_draid_map_alloc_write()  argument
653 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_write()
657 ASSERT3U(parity_size, ==, abd_get_size(rr->rr_col[0].rc_abd)); in vdev_draid_map_alloc_write()
659 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_write()
660 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_write()
697 vdev_draid_map_alloc_scrub(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_scrub() argument
700 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_scrub()
705 ASSERT3P(rr->rr_abd_empty, ==, NULL); in vdev_draid_map_alloc_scrub()
707 if (rr->rr_nempty > 0) { in vdev_draid_map_alloc_scrub()
708 rr->rr_abd_empty = abd_alloc_linear(rr->rr_nempty * skip_size, in vdev_draid_map_alloc_scrub()
712 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_scrub()
713 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_scrub()
718 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_scrub()
719 rc->rc_abd = abd_get_offset_size(rr->rr_abd_empty, in vdev_draid_map_alloc_scrub()
729 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_scrub()
734 rr->rr_abd_empty, skip_off, skip_size), B_TRUE); in vdev_draid_map_alloc_scrub()
739 ASSERT3U(abd_size, ==, abd_get_size(rr->rr_col[0].rc_abd)); in vdev_draid_map_alloc_scrub()
750 ASSERT3U(skip_off, ==, rr->rr_nempty * skip_size); in vdev_draid_map_alloc_scrub()
762 vdev_draid_map_alloc_read(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_read() argument
768 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_read()
769 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_read()
787 vdev_draid_map_alloc_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_alloc_empty() argument
790 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_empty()
794 ASSERT3P(rr->rr_abd_empty, ==, NULL); in vdev_draid_map_alloc_empty()
796 if (rr->rr_nempty > 0) { in vdev_draid_map_alloc_empty()
797 rr->rr_abd_empty = abd_alloc_linear(rr->rr_nempty * skip_size, in vdev_draid_map_alloc_empty()
801 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_empty()
802 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_empty()
807 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_empty()
809 rc->rc_abd = abd_get_offset_size(rr->rr_abd_empty, in vdev_draid_map_alloc_empty()
823 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_empty()
830 rr->rr_abd_empty, skip_off, skip_size), B_TRUE); in vdev_draid_map_alloc_empty()
842 ASSERT3U(skip_off, ==, rr->rr_nempty * skip_size); in vdev_draid_map_alloc_empty()
854 vdev_draid_map_verify_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_verify_empty() argument
857 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_verify_empty()
863 ASSERT3P(rr->rr_abd_empty, !=, NULL); in vdev_draid_map_verify_empty()
864 ASSERT3U(rr->rr_bigcols, >, 0); in vdev_draid_map_verify_empty()
868 for (int c = rr->rr_bigcols; c < rr->rr_cols; c++) { in vdev_draid_map_verify_empty()
869 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_verify_empty()
885 ASSERT3U(empty_off, ==, abd_get_size(rr->rr_abd_empty)); in vdev_draid_map_verify_empty()
1029 raidz_row_t *rr = vdev_raidz_row_alloc(groupwidth); in vdev_draid_map_alloc_row() local
1030 rr->rr_bigcols = bc; in vdev_draid_map_alloc_row()
1031 rr->rr_firstdatacol = vdc->vdc_nparity; in vdev_draid_map_alloc_row()
1033 rr->rr_offset = io_offset; in vdev_draid_map_alloc_row()
1034 rr->rr_size = io_size; in vdev_draid_map_alloc_row()
1036 *rrp = rr; in vdev_draid_map_alloc_row()
1042 raidz_col_t *rc = &rr->rr_col[i]; in vdev_draid_map_alloc_row()
1063 rr->rr_nempty = roundup(tot, groupwidth) - tot; in vdev_draid_map_alloc_row()
1064 IMPLY(bc > 0, rr->rr_nempty == groupwidth - bc); in vdev_draid_map_alloc_row()
1067 for (uint64_t c = 0; c < rr->rr_firstdatacol; c++) { in vdev_draid_map_alloc_row()
1068 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_row()
1078 vdev_draid_map_alloc_write(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1079 } else if ((rr->rr_nempty > 0) && in vdev_draid_map_alloc_row()
1081 vdev_draid_map_alloc_scrub(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1084 vdev_draid_map_alloc_read(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1107 raidz_row_t *rr[2]; in vdev_draid_map_alloc() local
1114 size = vdev_draid_map_alloc_row(zio, &rr[0], io_offset, in vdev_draid_map_alloc()
1129 size = vdev_draid_map_alloc_row(zio, &rr[1], in vdev_draid_map_alloc()
1138 rm->rm_row[0] = rr[0]; in vdev_draid_map_alloc()
1140 rm->rm_row[1] = rr[1]; in vdev_draid_map_alloc()
1823 vdev_draid_io_verify(vdev_t *vd, raidz_row_t *rr, int col) in vdev_draid_io_verify() argument
1827 logical_rs.rs_start = rr->rr_offset; in vdev_draid_io_verify()
1829 vdev_draid_asize(vd, rr->rr_size, 0); in vdev_draid_io_verify()
1831 raidz_col_t *rc = &rr->rr_col[col]; in vdev_draid_io_verify()
1850 vdev_draid_io_start_write(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_write() argument
1855 vdev_raidz_generate_parity_row(rm, rr); in vdev_draid_io_start_write()
1857 for (int c = 0; c < rr->rr_cols; c++) { in vdev_draid_io_start_write()
1858 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_write()
1867 vdev_draid_io_verify(vd, rr, c); in vdev_draid_io_start_write()
1885 vdev_draid_io_start_read(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_read() argument
1890 IMPLY(zio->io_priority == ZIO_PRIORITY_REBUILD, rr->rr_nempty == 0); in vdev_draid_io_start_read()
1898 for (int c = rr->rr_cols - 1; c >= 0; c--) { in vdev_draid_io_start_read()
1899 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_read()
1903 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1904 rr->rr_missingdata++; in vdev_draid_io_start_read()
1906 rr->rr_missingparity++; in vdev_draid_io_start_read()
1914 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1915 rr->rr_missingdata++; in vdev_draid_io_start_read()
1917 rr->rr_missingparity++; in vdev_draid_io_start_read()
1951 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1952 rr->rr_missingdata++; in vdev_draid_io_start_read()
1954 rr->rr_missingparity++; in vdev_draid_io_start_read()
2005 if ((rr->rr_missingdata > 0 || rr->rr_missingparity > 0) && in vdev_draid_io_start_read()
2006 rr->rr_nempty > 0 && rr->rr_abd_empty == NULL) { in vdev_draid_io_start_read()
2007 vdev_draid_map_alloc_empty(zio, rr); in vdev_draid_io_start_read()
2010 for (int c = rr->rr_cols - 1; c >= 0; c--) { in vdev_draid_io_start_read()
2011 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_read()
2017 if (c >= rr->rr_firstdatacol || rr->rr_missingdata > 0 || in vdev_draid_io_start_read()