aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/vdev_raidz.c
diff options
context:
space:
mode:
authorMatthew Ahrens <[email protected]>2021-03-17 21:57:09 -0700
committerGitHub <[email protected]>2021-03-17 21:57:09 -0700
commit46df6e98aaf324e7cbdf529f293a3c493645499e (patch)
tree846121b39e457b50eebdf6f0689ee4a55fabab09 /module/zfs/vdev_raidz.c
parentec3e4c6784485beca965ae3ebdeea948dd4739f3 (diff)
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 <[email protected]> Signed-off-by: Matthew Ahrens <[email protected]> Closes #11736
Diffstat (limited to 'module/zfs/vdev_raidz.c')
-rw-r--r--module/zfs/vdev_raidz.c69
1 files changed, 23 insertions, 46 deletions
diff --git a/module/zfs/vdev_raidz.c b/module/zfs/vdev_raidz.c
index 57a594c80..28280e15a 100644
--- a/module/zfs/vdev_raidz.c
+++ b/module/zfs/vdev_raidz.c
@@ -831,7 +831,7 @@ vdev_raidz_reconst_pq_tail_func(void *xbuf, size_t size, void *private)
return (0);
}
-static int
+static void
vdev_raidz_reconstruct_p(raidz_row_t *rr, int *tgts, int ntgts)
{
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,
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)
{
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 };
(void) abd_iterate_func(dst, 0, rr->rr_col[x].rc_size,
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)
{
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_Q].rc_abd = qdata;
-
- return ((1 << VDEV_RAIDZ_P) | (1 << VDEV_RAIDZ_Q));
}
/* BEGIN CSTYLED */
@@ -1355,7 +1349,7 @@ vdev_raidz_matrix_reconstruct(raidz_row_t *rr, int n, int nmissing,
kmem_free(p, psize);
}
-static int
+static void
vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
{
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;
- int code = 0;
-
/*
* Matrix reconstruction can't use scatter ABDs yet, so we allocate
* 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;
}
- code |= 1 << c;
-
parity_map[i] = c;
i++;
}
- ASSERT(code != 0);
- ASSERT3U(code, <, 1 << VDEV_RAIDZ_MAXPARITY);
-
psize = (sizeof (rows[0][0]) + sizeof (invrows[0][0])) *
nmissing_rows * n + sizeof (used[0]) * n;
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 *));
}
-
- return (code);
}
-static int
+static void
vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
const int *t, int nt)
{
int tgts[VDEV_RAIDZ_MAXPARITY], *dt;
int ntgts;
int i, c, ret;
- int code;
int nbadparity, nbaddata;
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 */
ret = vdev_raidz_math_reconstruct(rm, rr, parity_valid, dt, nbaddata);
if (ret != RAIDZ_ORIGINAL_IMPL)
- return (ret);
+ return;
/*
* See if we can use any of our optimized reconstruction routines.
*/
switch (nbaddata) {
case 1:
- if (parity_valid[VDEV_RAIDZ_P])
- return (vdev_raidz_reconstruct_p(rr, dt, 1));
+ if (parity_valid[VDEV_RAIDZ_P]) {
+ vdev_raidz_reconstruct_p(rr, dt, 1);
+ return;
+ }
ASSERT(rr->rr_firstdatacol > 1);
- if (parity_valid[VDEV_RAIDZ_Q])
- return (vdev_raidz_reconstruct_q(rr, dt, 1));
+ if (parity_valid[VDEV_RAIDZ_Q]) {
+ vdev_raidz_reconstruct_q(rr, dt, 1);
+ return;
+ }
ASSERT(rr->rr_firstdatacol > 2);
break;
@@ -1563,18 +1551,17 @@ vdev_raidz_reconstruct_row(raidz_map_t *rm, raidz_row_t *rr,
ASSERT(rr->rr_firstdatacol > 1);
if (parity_valid[VDEV_RAIDZ_P] &&
- parity_valid[VDEV_RAIDZ_Q])
- return (vdev_raidz_reconstruct_pq(rr, dt, 2));
+ parity_valid[VDEV_RAIDZ_Q]) {
+ vdev_raidz_reconstruct_pq(rr, dt, 2);
+ return;
+ }
ASSERT(rr->rr_firstdatacol > 2);
break;
}
- code = vdev_raidz_reconstruct_general(rr, tgts, ntgts);
- ASSERT(code < (1 << VDEV_RAIDZ_MAXPARITY));
- ASSERT(code > 0);
- return (code);
+ vdev_raidz_reconstruct_general(rr, tgts, ntgts);
}
static int
@@ -2082,10 +2069,8 @@ raidz_reconstruct(zio_t *zio, int *ltgts, int ntgts, int nparity)
raidz_restore_orig_data(rm);
return (EINVAL);
}
- rr->rr_code = 0;
if (dead_data > 0)
- rr->rr_code = vdev_raidz_reconstruct_row(rm, rr,
- my_tgts, t);
+ vdev_raidz_reconstruct_row(rm, rr, my_tgts, t);
}
/* Check for success */
@@ -2318,11 +2303,7 @@ vdev_raidz_io_done_write_impl(zio_t *zio, raidz_row_t *rr)
}
}
-/*
- * return 0 if no reconstruction occurred, otherwise the "code" from
- * vdev_raidz_reconstruct().
- */
-static int
+static void
vdev_raidz_io_done_reconstruct_known_missing(zio_t *zio, raidz_map_t *rm,
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 data_errors = 0;
int total_errors = 0;
- int code = 0;
ASSERT3U(rr->rr_missingparity, <=, 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);
- 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 {
for (int i = 0; i < rm->rm_nrows; 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);
}