diff options
author | Gvozden Neskovic <[email protected]> | 2017-01-05 14:10:07 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-03-29 12:24:51 -0700 |
commit | 84c07adadb2486e4049032e43e1f38650ca75289 (patch) | |
tree | e3215504111edc9dea3970e643833f6963f3f9d0 /include/sys | |
parent | 2035575fd67fd7dd14f072e1cb6f4bae8ca62c7d (diff) |
Remove dependency on linear ABD
Wherever possible it's best to avoid depending on a linear ABD.
Update the code accordingly in the following areas.
- vdev_raidz
- zio, zio_checksum
- zfs_fm
- change abd_alloc_for_io() to use abd_alloc()
Reviewed-by: David Quigley <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Gvozden Neskovic <[email protected]>
Closes #5668
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/zio.h | 6 | ||||
-rw-r--r-- | include/sys/zio_checksum.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/include/sys/zio.h b/include/sys/zio.h index dc6c46814..54b106f05 100644 --- a/include/sys/zio.h +++ b/include/sys/zio.h @@ -296,7 +296,7 @@ typedef struct zio_prop { typedef struct zio_cksum_report zio_cksum_report_t; typedef void zio_cksum_finish_f(zio_cksum_report_t *rep, - const void *good_data); + const abd_t *good_data); typedef void zio_cksum_free_f(void *cbdata, size_t size); struct zio_bad_cksum; /* defined in zio_checksum.h */ @@ -587,14 +587,14 @@ extern hrtime_t zio_handle_io_delay(zio_t *zio); extern void zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd, struct zio *zio, uint64_t offset, uint64_t length, void *arg, struct zio_bad_cksum *info); extern void zfs_ereport_finish_checksum(zio_cksum_report_t *report, - const void *good_data, const void *bad_data, boolean_t drop_if_identical); + const abd_t *good_data, const abd_t *bad_data, boolean_t drop_if_identical); extern void zfs_ereport_free_checksum(zio_cksum_report_t *report); /* If we have the good data in hand, this function can be used */ extern void zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd, struct zio *zio, uint64_t offset, uint64_t length, - const void *good_data, const void *bad_data, struct zio_bad_cksum *info); + const abd_t *good_data, const abd_t *bad_data, struct zio_bad_cksum *info); /* Called from spa_sync(), but primarily an injection handler */ extern void spa_handle_ignored_writes(spa_t *spa); diff --git a/include/sys/zio_checksum.h b/include/sys/zio_checksum.h index 60fd12b06..45abd3bd3 100644 --- a/include/sys/zio_checksum.h +++ b/include/sys/zio_checksum.h @@ -130,7 +130,7 @@ extern int zio_checksum_equal(spa_t *, blkptr_t *, enum zio_checksum, void *, uint64_t, uint64_t, zio_bad_cksum_t *); extern void zio_checksum_compute(zio_t *, enum zio_checksum, struct abd *, uint64_t); -extern int zio_checksum_error_impl(spa_t *, blkptr_t *, enum zio_checksum, +extern int zio_checksum_error_impl(spa_t *, const blkptr_t *, enum zio_checksum, struct abd *, uint64_t, uint64_t, zio_bad_cksum_t *); extern int zio_checksum_error(zio_t *zio, zio_bad_cksum_t *out); extern enum zio_checksum spa_dedup_checksum(spa_t *spa); |