mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
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 <david.quigley@intel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Gvozden Neskovic <neskovic@gmail.com> Closes #5668
This commit is contained in:
committed by
Brian Behlendorf
parent
2035575fd6
commit
84c07adadb
+3
-3
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user