mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
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_empty; /* dRAID empty sector buffer */
|
||||
int rr_nempty; /* empty sectors included in parity */
|
||||
int rr_code; /* reconstruction code (unused) */
|
||||
#ifdef ZFS_DEBUG
|
||||
uint64_t rr_offset; /* Logical offset 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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user