git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use stored whole_disk property when opening a vdev
[zfs.git]
/
module
/
zfs
/
vdev_raidz.c
diff --git
a/module/zfs/vdev_raidz.c
b/module/zfs/vdev_raidz.c
index
af2de40
..
b987ac4
100644
(file)
--- a/
module/zfs/vdev_raidz.c
+++ b/
module/zfs/vdev_raidz.c
@@
-1189,7
+1189,7
@@
vdev_raidz_matrix_reconstruct(raidz_map_t *rm, int n, int nmissing,
uint64_t ccount;
uint8_t *dst[VDEV_RAIDZ_MAXPARITY];
uint64_t dcount[VDEV_RAIDZ_MAXPARITY];
uint64_t ccount;
uint8_t *dst[VDEV_RAIDZ_MAXPARITY];
uint64_t dcount[VDEV_RAIDZ_MAXPARITY];
- uint8_t log, val;
+ uint8_t log
= 0
, val;
int ll;
uint8_t *invlog[VDEV_RAIDZ_MAXPARITY];
uint8_t *p, *pp;
int ll;
uint8_t *invlog[VDEV_RAIDZ_MAXPARITY];
uint8_t *p, *pp;
@@
-1638,8
+1638,11
@@
raidz_checksum_verify(zio_t *zio)
{
zio_bad_cksum_t zbc;
raidz_map_t *rm = zio->io_vsd;
{
zio_bad_cksum_t zbc;
raidz_map_t *rm = zio->io_vsd;
+ int ret;
- int ret = zio_checksum_error(zio, &zbc);
+ bzero(&zbc, sizeof (zio_bad_cksum_t));
+
+ ret = zio_checksum_error(zio, &zbc);
if (ret != 0 && zbc.zbc_injected != 0)
rm->rm_ecksuminjected = 1;
if (ret != 0 && zbc.zbc_injected != 0)
rm->rm_ecksuminjected = 1;
@@
-1716,7
+1719,7
@@
vdev_raidz_combrec(zio_t *zio, int total_errors, int data_errors)
void *orig[VDEV_RAIDZ_MAXPARITY];
int tstore[VDEV_RAIDZ_MAXPARITY + 2];
int *tgts = &tstore[1];
void *orig[VDEV_RAIDZ_MAXPARITY];
int tstore[VDEV_RAIDZ_MAXPARITY + 2];
int *tgts = &tstore[1];
- int curr
ent
, next, i, c, n;
+ int curr, next, i, c, n;
int code, ret = 0;
ASSERT(total_errors < rm->rm_firstdatacol);
int code, ret = 0;
ASSERT(total_errors < rm->rm_firstdatacol);
@@
-1764,12
+1767,12
@@
vdev_raidz_combrec(zio_t *zio, int total_errors, int data_errors)
orig[n - 1] = zio_buf_alloc(rm->rm_col[0].rc_size);
orig[n - 1] = zio_buf_alloc(rm->rm_col[0].rc_size);
- curr
ent
= 0;
- next = tgts[curr
ent
];
+ curr = 0;
+ next = tgts[curr];
- while (curr
ent
!= n) {
- tgts[curr
ent
] = next;
- curr
ent
= 0;
+ while (curr != n) {
+ tgts[curr] = next;
+ curr = 0;
/*
* Save off the original data that we're going to
/*
* Save off the original data that we're going to
@@
-1817,34
+1820,34
@@
vdev_raidz_combrec(zio_t *zio, int total_errors, int data_errors)
do {
/*
do {
/*
- * Find the next valid column after the curr
ent
+ * Find the next valid column after the curr
* position..
*/
* position..
*/
- for (next = tgts[curr
ent
] + 1;
+ for (next = tgts[curr] + 1;
next < rm->rm_cols &&
rm->rm_col[next].rc_error != 0; next++)
continue;
next < rm->rm_cols &&
rm->rm_col[next].rc_error != 0; next++)
continue;
- ASSERT(next <= tgts[curr
ent
+ 1]);
+ ASSERT(next <= tgts[curr + 1]);
/*
* If that spot is available, we're done here.
*/
/*
* If that spot is available, we're done here.
*/
- if (next != tgts[curr
ent
+ 1])
+ if (next != tgts[curr + 1])
break;
/*
* Otherwise, find the next valid column after
* the previous position.
*/
break;
/*
* Otherwise, find the next valid column after
* the previous position.
*/
- for (c = tgts[curr
ent
- 1] + 1;
+ for (c = tgts[curr - 1] + 1;
rm->rm_col[c].rc_error != 0; c++)
continue;
rm->rm_col[c].rc_error != 0; c++)
continue;
- tgts[curr
ent
] = c;
- curr
ent
++;
+ tgts[curr] = c;
+ curr++;
- } while (curr
ent
!= n);
+ } while (curr != n);
}
}
n--;
}
}
n--;
@@
-1862,7
+1865,7
@@
vdev_raidz_io_done(zio_t *zio)
vdev_t *vd = zio->io_vd;
vdev_t *cvd;
raidz_map_t *rm = zio->io_vsd;
vdev_t *vd = zio->io_vd;
vdev_t *cvd;
raidz_map_t *rm = zio->io_vsd;
- raidz_col_t *rc;
+ raidz_col_t *rc
= NULL
;
int unexpected_errors = 0;
int parity_errors = 0;
int parity_untried = 0;
int unexpected_errors = 0;
int parity_errors = 0;
int parity_untried = 0;