Remove unused rr_code
The `rr_code` field in `raidz_row_t` is unused. This commit removes the field, as well as the code that's used to set it. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Matthew Ahrens <mahrens@delphix.com> Closes #11736
This commit is contained in:
parent
ec3e4c6784
commit
46df6e98aa
|
@ -127,7 +127,6 @@ typedef struct raidz_row {
|
||||||
abd_t *rr_abd_copy; /* rm_asize-buffer of copied data */
|
abd_t *rr_abd_copy; /* rm_asize-buffer of copied data */
|
||||||
abd_t *rr_abd_empty; /* dRAID empty sector buffer */
|
abd_t *rr_abd_empty; /* dRAID empty sector buffer */
|
||||||
int rr_nempty; /* empty sectors included in parity */
|
int rr_nempty; /* empty sectors included in parity */
|
||||||
int rr_code; /* reconstruction code (unused) */
|
|
||||||
#ifdef ZFS_DEBUG
|
#ifdef ZFS_DEBUG
|
||||||
uint64_t rr_offset; /* Logical offset for *_io_verify() */
|
uint64_t rr_offset; /* Logical offset for *_io_verify() */
|
||||||
uint64_t rr_size; /* Physical size for *_io_verify() */
|
uint64_t rr_size; /* Physical size for *_io_verify() */
|
||||||
|
|
|
@ -831,7 +831,7 @@ vdev_raidz_reconst_pq_tail_func(void *xbuf, size_t size, void *private)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
vdev_raidz_reconstruct_p(raidz_row_t *rr, int *tgts, int ntgts)
|
vdev_raidz_reconstruct_p(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
{
|
{
|
||||||
int x = tgts[0];
|
int x = tgts[0];
|
||||||
|
@ -860,11 +860,9 @@ vdev_raidz_reconstruct_p(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
(void) abd_iterate_func2(dst, src, 0, 0, size,
|
(void) abd_iterate_func2(dst, src, 0, 0, size,
|
||||||
vdev_raidz_reconst_p_func, NULL);
|
vdev_raidz_reconst_p_func, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (1 << VDEV_RAIDZ_P);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
vdev_raidz_reconstruct_q(raidz_row_t *rr, int *tgts, int ntgts)
|
vdev_raidz_reconstruct_q(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
{
|
{
|
||||||
int x = tgts[0];
|
int x = tgts[0];
|
||||||
|
@ -905,11 +903,9 @@ vdev_raidz_reconstruct_q(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
struct reconst_q_struct rq = { abd_to_buf(src), exp };
|
struct reconst_q_struct rq = { abd_to_buf(src), exp };
|
||||||
(void) abd_iterate_func(dst, 0, rr->rr_col[x].rc_size,
|
(void) abd_iterate_func(dst, 0, rr->rr_col[x].rc_size,
|
||||||
vdev_raidz_reconst_q_post_func, &rq);
|
vdev_raidz_reconst_q_post_func, &rq);
|
||||||
|
|
||||||
return (1 << VDEV_RAIDZ_Q);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
vdev_raidz_reconstruct_pq(raidz_row_t *rr, int *tgts, int ntgts)
|
vdev_raidz_reconstruct_pq(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
{
|
{
|
||||||
uint8_t *p, *q, *pxy, *qxy, tmp, a, b, aexp, bexp;
|
uint8_t *p, *q, *pxy, *qxy, tmp, a, b, aexp, bexp;
|
||||||
|
@ -995,8 +991,6 @@ vdev_raidz_reconstruct_pq(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
*/
|
*/
|
||||||
rr->rr_col[VDEV_RAIDZ_P].rc_abd = pdata;
|
rr->rr_col[VDEV_RAIDZ_P].rc_abd = pdata;
|
||||||
rr->rr_col[VDEV_RAIDZ_Q].rc_abd = qdata;
|
rr->rr_col[VDEV_RAIDZ_Q].rc_abd = qdata;
|
||||||
|
|
||||||
return ((1 << VDEV_RAIDZ_P) | (1 << VDEV_RAIDZ_Q));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* BEGIN CSTYLED */
|
/* BEGIN CSTYLED */
|
||||||
|
@ -1355,7 +1349,7 @@ vdev_raidz_matrix_reconstruct(raidz_row_t *rr, int n, int nmissing,
|
||||||
kmem_free(p, psize);
|
kmem_free(p, psize);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
{
|
{
|
||||||
int n, i, c, t, tt;
|
int n, i, c, t, tt;
|
||||||
|
@ -1370,8 +1364,6 @@ vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
|
|
||||||
abd_t **bufs = NULL;
|
abd_t **bufs = NULL;
|
||||||
|
|
||||||
int code = 0;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Matrix reconstruction can't use scatter ABDs yet, so we allocate
|
* Matrix reconstruction can't use scatter ABDs yet, so we allocate
|
||||||
* temporary linear ABDs if any non-linear ABDs are found.
|
* temporary linear ABDs if any non-linear ABDs are found.
|
||||||
|
@ -1426,15 +1418,10 @@ vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
code |= 1 << c;
|
|
||||||
|
|
||||||
parity_map[i] = c;
|
parity_map[i] = c;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(code != 0);
|
|
||||||
ASSERT3U(code, <, 1 << VDEV_RAIDZ_MAXPARITY);
|
|
||||||
|
|
||||||
psize = (sizeof (rows[0][0]) + sizeof (invrows[0][0])) *
|
psize = (sizeof (rows[0][0]) + sizeof (invrows[0][0])) *
|
||||||
nmissing_rows * n + sizeof (used[0]) * n;
|
nmissing_rows * n + sizeof (used[0]) * n;
|
||||||
p = kmem_alloc(psize, KM_SLEEP);
|
p = kmem_alloc(psize, KM_SLEEP);
|
||||||
|
@ -1497,18 +1484,15 @@ vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
}
|
}
|
||||||
kmem_free(bufs, rr->rr_cols * sizeof (abd_t *));
|
kmem_free(bufs, rr->rr_cols * sizeof (abd_t *));
|
||||||
}
|
}
|
||||||
|
|
||||||
return (code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
|
vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
|
||||||
const int *t, int nt)
|
const int *t, int nt)
|
||||||
{
|
{
|
||||||
int tgts[VDEV_RAIDZ_MAXPARITY], *dt;
|
int tgts[VDEV_RAIDZ_MAXPARITY], *dt;
|
||||||
int ntgts;
|
int ntgts;
|
||||||
int i, c, ret;
|
int i, c, ret;
|
||||||
int code;
|
|
||||||
int nbadparity, nbaddata;
|
int nbadparity, nbaddata;
|
||||||
int parity_valid[VDEV_RAIDZ_MAXPARITY];
|
int parity_valid[VDEV_RAIDZ_MAXPARITY];
|
||||||
|
|
||||||
|
@ -1541,20 +1525,24 @@ vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
|
||||||
/* Reconstruct using the new math implementation */
|
/* Reconstruct using the new math implementation */
|
||||||
ret = vdev_raidz_math_reconstruct(rm, rr, parity_valid, dt, nbaddata);
|
ret = vdev_raidz_math_reconstruct(rm, rr, parity_valid, dt, nbaddata);
|
||||||
if (ret != RAIDZ_ORIGINAL_IMPL)
|
if (ret != RAIDZ_ORIGINAL_IMPL)
|
||||||
return (ret);
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* See if we can use any of our optimized reconstruction routines.
|
* See if we can use any of our optimized reconstruction routines.
|
||||||
*/
|
*/
|
||||||
switch (nbaddata) {
|
switch (nbaddata) {
|
||||||
case 1:
|
case 1:
|
||||||
if (parity_valid[VDEV_RAIDZ_P])
|
if (parity_valid[VDEV_RAIDZ_P]) {
|
||||||
return (vdev_raidz_reconstruct_p(rr, dt, 1));
|
vdev_raidz_reconstruct_p(rr, dt, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(rr->rr_firstdatacol > 1);
|
ASSERT(rr->rr_firstdatacol > 1);
|
||||||
|
|
||||||
if (parity_valid[VDEV_RAIDZ_Q])
|
if (parity_valid[VDEV_RAIDZ_Q]) {
|
||||||
return (vdev_raidz_reconstruct_q(rr, dt, 1));
|
vdev_raidz_reconstruct_q(rr, dt, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(rr->rr_firstdatacol > 2);
|
ASSERT(rr->rr_firstdatacol > 2);
|
||||||
break;
|
break;
|
||||||
|
@ -1563,18 +1551,17 @@ vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
|
||||||
ASSERT(rr->rr_firstdatacol > 1);
|
ASSERT(rr->rr_firstdatacol > 1);
|
||||||
|
|
||||||
if (parity_valid[VDEV_RAIDZ_P] &&
|
if (parity_valid[VDEV_RAIDZ_P] &&
|
||||||
parity_valid[VDEV_RAIDZ_Q])
|
parity_valid[VDEV_RAIDZ_Q]) {
|
||||||
return (vdev_raidz_reconstruct_pq(rr, dt, 2));
|
vdev_raidz_reconstruct_pq(rr, dt, 2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(rr->rr_firstdatacol > 2);
|
ASSERT(rr->rr_firstdatacol > 2);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = vdev_raidz_reconstruct_general(rr, tgts, ntgts);
|
vdev_raidz_reconstruct_general(rr, tgts, ntgts);
|
||||||
ASSERT(code < (1 << VDEV_RAIDZ_MAXPARITY));
|
|
||||||
ASSERT(code > 0);
|
|
||||||
return (code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -2082,10 +2069,8 @@ raidz_reconstruct(zio_t *zio, int *ltgts, int ntgts, int nparity)
|
||||||
raidz_restore_orig_data(rm);
|
raidz_restore_orig_data(rm);
|
||||||
return (EINVAL);
|
return (EINVAL);
|
||||||
}
|
}
|
||||||
rr->rr_code = 0;
|
|
||||||
if (dead_data > 0)
|
if (dead_data > 0)
|
||||||
rr->rr_code = vdev_raidz_reconstruct_row(rm, rr,
|
vdev_raidz_reconstruct_row(rm, rr, my_tgts, t);
|
||||||
my_tgts, t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for success */
|
/* Check for success */
|
||||||
|
@ -2318,11 +2303,7 @@ vdev_raidz_io_done_write_impl(zio_t *zio, raidz_row_t *rr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static void
|
||||||
* return 0 if no reconstruction occurred, otherwise the "code" from
|
|
||||||
* vdev_raidz_reconstruct().
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
vdev_raidz_io_done_reconstruct_known_missing(zio_t *zio, raidz_map_t *rm,
|
vdev_raidz_io_done_reconstruct_known_missing(zio_t *zio, raidz_map_t *rm,
|
||||||
raidz_row_t *rr)
|
raidz_row_t *rr)
|
||||||
{
|
{
|
||||||
|
@ -2330,7 +2311,6 @@ vdev_raidz_io_done_reconstruct_known_missing(zio_t *zio, raidz_map_t *rm,
|
||||||
int parity_untried = 0;
|
int parity_untried = 0;
|
||||||
int data_errors = 0;
|
int data_errors = 0;
|
||||||
int total_errors = 0;
|
int total_errors = 0;
|
||||||
int code = 0;
|
|
||||||
|
|
||||||
ASSERT3U(rr->rr_missingparity, <=, rr->rr_firstdatacol);
|
ASSERT3U(rr->rr_missingparity, <=, rr->rr_firstdatacol);
|
||||||
ASSERT3U(rr->rr_missingdata, <=, rr->rr_cols - rr->rr_firstdatacol);
|
ASSERT3U(rr->rr_missingdata, <=, rr->rr_cols - rr->rr_firstdatacol);
|
||||||
|
@ -2385,10 +2365,8 @@ vdev_raidz_io_done_reconstruct_known_missing(zio_t *zio, raidz_map_t *rm,
|
||||||
|
|
||||||
ASSERT(rr->rr_firstdatacol >= n);
|
ASSERT(rr->rr_firstdatacol >= n);
|
||||||
|
|
||||||
code = vdev_raidz_reconstruct_row(rm, rr, tgts, n);
|
vdev_raidz_reconstruct_row(rm, rr, tgts, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2473,8 +2451,7 @@ vdev_raidz_io_done(zio_t *zio)
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < rm->rm_nrows; i++) {
|
for (int i = 0; i < rm->rm_nrows; i++) {
|
||||||
raidz_row_t *rr = rm->rm_row[i];
|
raidz_row_t *rr = rm->rm_row[i];
|
||||||
rr->rr_code =
|
vdev_raidz_io_done_reconstruct_known_missing(zio,
|
||||||
vdev_raidz_io_done_reconstruct_known_missing(zio,
|
|
||||||
rm, rr);
|
rm, rr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue