I've done a little experimentation with a version of abd_alloc_for_io() that
returns a chunked abd. zio_checksum_compute() couldn't cope with that in the
ZCHECKSUM_FLAG_EMBEDDED case.
At present the function uses abd_to_buf() and that requires a linear abd.
The use of abd_to_buf() can be replaced with some calls to abd_copy_to_buf_off()
and abd_copy_from_buf_off().  But the code would become a bit "heavier" and 
uglier.

Are there any other ways to get a small buffer view into a chunked abd?
Size of zio_eck_t is just 40 bytes.  It's located either near the begnning of a
block or at the end of it.  I think that it is not likely to ever cross chunk
boundaries unless an insane chunk size is used.

Thanks!
-- 
Andriy Gapon

------------------------------------------
openzfs-developer
Archives: 
https://openzfs.topicbox.com/groups/developer/discussions/Tdc55c3947a3b78d0-M4da61a75715273c2e861b82e
Powered by Topicbox: https://topicbox.com

Reply via email to