Lines Matching refs:rr

649 vdev_draid_map_alloc_write(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr)  in vdev_draid_map_alloc_write()  argument
652 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_write()
656 ASSERT3U(parity_size, ==, abd_get_size(rr->rr_col[0].rc_abd)); in vdev_draid_map_alloc_write()
658 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_write()
659 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_write()
696 vdev_draid_map_alloc_scrub(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_scrub() argument
699 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_scrub()
704 ASSERT3P(rr->rr_abd_empty, ==, NULL); in vdev_draid_map_alloc_scrub()
706 if (rr->rr_nempty > 0) { in vdev_draid_map_alloc_scrub()
707 rr->rr_abd_empty = abd_alloc_linear(rr->rr_nempty * skip_size, in vdev_draid_map_alloc_scrub()
711 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_scrub()
712 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_scrub()
717 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_scrub()
718 rc->rc_abd = abd_get_offset_size(rr->rr_abd_empty, in vdev_draid_map_alloc_scrub()
728 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_scrub()
733 rr->rr_abd_empty, skip_off, skip_size), B_TRUE); in vdev_draid_map_alloc_scrub()
738 ASSERT3U(abd_size, ==, abd_get_size(rr->rr_col[0].rc_abd)); in vdev_draid_map_alloc_scrub()
749 ASSERT3U(skip_off, ==, rr->rr_nempty * skip_size); in vdev_draid_map_alloc_scrub()
761 vdev_draid_map_alloc_read(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_read() argument
767 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_read()
768 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_read()
786 vdev_draid_map_alloc_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_alloc_empty() argument
789 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_alloc_empty()
793 ASSERT3P(rr->rr_abd_empty, ==, NULL); in vdev_draid_map_alloc_empty()
795 if (rr->rr_nempty > 0) { in vdev_draid_map_alloc_empty()
796 rr->rr_abd_empty = abd_alloc_linear(rr->rr_nempty * skip_size, in vdev_draid_map_alloc_empty()
800 for (uint64_t c = rr->rr_firstdatacol; c < rr->rr_cols; c++) { in vdev_draid_map_alloc_empty()
801 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_empty()
806 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_empty()
808 rc->rc_abd = abd_get_offset_size(rr->rr_abd_empty, in vdev_draid_map_alloc_empty()
822 ASSERT3U(rr->rr_nempty, !=, 0); in vdev_draid_map_alloc_empty()
829 rr->rr_abd_empty, skip_off, skip_size), B_TRUE); in vdev_draid_map_alloc_empty()
841 ASSERT3U(skip_off, ==, rr->rr_nempty * skip_size); in vdev_draid_map_alloc_empty()
853 vdev_draid_map_verify_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_verify_empty() argument
856 uint64_t parity_size = rr->rr_col[0].rc_size; in vdev_draid_map_verify_empty()
862 ASSERT3P(rr->rr_abd_empty, !=, NULL); in vdev_draid_map_verify_empty()
863 ASSERT3U(rr->rr_bigcols, >, 0); in vdev_draid_map_verify_empty()
867 for (int c = rr->rr_bigcols; c < rr->rr_cols; c++) { in vdev_draid_map_verify_empty()
868 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_verify_empty()
884 ASSERT3U(empty_off, ==, abd_get_size(rr->rr_abd_empty)); in vdev_draid_map_verify_empty()
1028 raidz_row_t *rr; in vdev_draid_map_alloc_row() local
1029 rr = kmem_alloc(offsetof(raidz_row_t, rr_col[groupwidth]), KM_SLEEP); in vdev_draid_map_alloc_row()
1030 rr->rr_cols = groupwidth; in vdev_draid_map_alloc_row()
1031 rr->rr_scols = groupwidth; in vdev_draid_map_alloc_row()
1032 rr->rr_bigcols = bc; in vdev_draid_map_alloc_row()
1033 rr->rr_missingdata = 0; in vdev_draid_map_alloc_row()
1034 rr->rr_missingparity = 0; in vdev_draid_map_alloc_row()
1035 rr->rr_firstdatacol = vdc->vdc_nparity; in vdev_draid_map_alloc_row()
1036 rr->rr_abd_empty = NULL; in vdev_draid_map_alloc_row()
1038 rr->rr_offset = io_offset; in vdev_draid_map_alloc_row()
1039 rr->rr_size = io_size; in vdev_draid_map_alloc_row()
1041 *rrp = rr; in vdev_draid_map_alloc_row()
1047 raidz_col_t *rc = &rr->rr_col[i]; in vdev_draid_map_alloc_row()
1076 rr->rr_nempty = roundup(tot, groupwidth) - tot; in vdev_draid_map_alloc_row()
1077 IMPLY(bc > 0, rr->rr_nempty == groupwidth - bc); in vdev_draid_map_alloc_row()
1080 for (uint64_t c = 0; c < rr->rr_firstdatacol; c++) { in vdev_draid_map_alloc_row()
1081 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_map_alloc_row()
1091 vdev_draid_map_alloc_write(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1092 } else if ((rr->rr_nempty > 0) && in vdev_draid_map_alloc_row()
1094 vdev_draid_map_alloc_scrub(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1097 vdev_draid_map_alloc_read(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1120 raidz_row_t *rr[2]; in vdev_draid_map_alloc() local
1127 size = vdev_draid_map_alloc_row(zio, &rr[0], io_offset, in vdev_draid_map_alloc()
1142 size = vdev_draid_map_alloc_row(zio, &rr[1], in vdev_draid_map_alloc()
1151 rm->rm_row[0] = rr[0]; in vdev_draid_map_alloc()
1153 rm->rm_row[1] = rr[1]; in vdev_draid_map_alloc()
1837 vdev_draid_io_verify(vdev_t *vd, raidz_row_t *rr, int col) in vdev_draid_io_verify() argument
1841 logical_rs.rs_start = rr->rr_offset; in vdev_draid_io_verify()
1843 vdev_draid_asize(vd, rr->rr_size); in vdev_draid_io_verify()
1845 raidz_col_t *rc = &rr->rr_col[col]; in vdev_draid_io_verify()
1864 vdev_draid_io_start_write(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_write() argument
1869 vdev_raidz_generate_parity_row(rm, rr); in vdev_draid_io_start_write()
1871 for (int c = 0; c < rr->rr_cols; c++) { in vdev_draid_io_start_write()
1872 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_write()
1881 vdev_draid_io_verify(vd, rr, c); in vdev_draid_io_start_write()
1899 vdev_draid_io_start_read(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_read() argument
1904 IMPLY(zio->io_priority == ZIO_PRIORITY_REBUILD, rr->rr_nempty == 0); in vdev_draid_io_start_read()
1912 for (int c = rr->rr_cols - 1; c >= 0; c--) { in vdev_draid_io_start_read()
1913 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_read()
1917 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1918 rr->rr_missingdata++; in vdev_draid_io_start_read()
1920 rr->rr_missingparity++; in vdev_draid_io_start_read()
1928 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1929 rr->rr_missingdata++; in vdev_draid_io_start_read()
1931 rr->rr_missingparity++; in vdev_draid_io_start_read()
1965 if (c >= rr->rr_firstdatacol) in vdev_draid_io_start_read()
1966 rr->rr_missingdata++; in vdev_draid_io_start_read()
1968 rr->rr_missingparity++; in vdev_draid_io_start_read()
2019 if ((rr->rr_missingdata > 0 || rr->rr_missingparity > 0) && in vdev_draid_io_start_read()
2020 rr->rr_nempty > 0 && rr->rr_abd_empty == NULL) { in vdev_draid_io_start_read()
2021 vdev_draid_map_alloc_empty(zio, rr); in vdev_draid_io_start_read()
2024 for (int c = rr->rr_cols - 1; c >= 0; c--) { in vdev_draid_io_start_read()
2025 raidz_col_t *rc = &rr->rr_col[c]; in vdev_draid_io_start_read()
2031 if (c >= rr->rr_firstdatacol || rr->rr_missingdata > 0 || in vdev_draid_io_start_read()