dweeezil commented on this pull request.
So far, looks good (in the port to ZoL) except for the repair writes happening
for read-only pools.
> + if (is->is_child[is->is_good_child].ic_data == NULL) {
+ ret = EIO;
+ goto next;
+ }
+
+ abd_copy_off(zio->io_abd,
+ is->is_child[is->is_good_child].ic_data,
+ is->is_split_offset, 0, is->is_size);
+ }
+
+ /* See if this checksum matches. */
+ zio_bad_cksum_t zbc;
+ ret = zio_checksum_error(zio, &zbc);
+ if (ret == 0) {
+ /* Found a matching checksum. Issue repair i/os. */
+ vdev_indirect_repair(zio);
I added this here:
```
diff --git a/module/zfs/vdev_indirect.c b/module/zfs/vdev_indirect.c
index f794b92..7d88b4c 100644
--- a/module/zfs/vdev_indirect.c
+++ b/module/zfs/vdev_indirect.c
@@ -1416,7 +1416,8 @@ vdev_indirect_reconstruct_io_done(zio_t *zio)
ret = zio_checksum_error(zio, &zbc);
if (ret == 0) {
/* Found a matching checksum. Issue repair i/os. */
- vdev_indirect_repair(zio);
+ if (spa_writeable(zio->io_spa))
+ vdev_indirect_repair(zio);
zio_checksum_verified(zio);
return;
}
```
to keep zdb from triggering ```VERIFY(zio->io_type != ZIO_TYPE_WRITE ||
spa_writeable(spa));``` in ```zio_vdev_io_start()```.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openzfs/openzfs/pull/591#pullrequestreview-104804765
------------------------------------------
openzfs: openzfs-developer
Permalink:
https://openzfs.topicbox.com/groups/developer/discussions/T497ad70ebb1401b5-Md05bf4c0d4eec4182d1a04ae
Delivery options: https://openzfs.topicbox.com/groups