It is interesting that `l2arc_write_buffers` is one of the places the merge was
not smooth. Re-porting the function from clean did not change much alas,
adding flag `ARC_FLAG_L2_WRITING` .
The IllumOS version has an extra chunk of code that the other platforms have:
```
* To ensure that the copy will be available for the
* lifetime of the ZIO and be cleaned up afterwards, we
* add it to the l2arc_free_on_write queue.
*/
if (!HDR_SHARED_DATA(hdr) && psize == asize) {
to_write = hdr->b_l1hdr.b_pabd;
} else {
to_write = abd_alloc_for_io(asize,
HDR_ISTYPE_METADATA(hdr));
abd_copy(to_write, hdr->b_l1hdr.b_pabd, psize);
if (asize != psize) {
abd_zero_off(to_write, psize,
asize - psize);
}
l2arc_free_abd_on_write(to_write, asize,
arc_buf_type(hdr));
}
wzio = zio_write_phys(pio, dev->l2ad_vdev,
```
Which perhaps needs extra thinking around it for crypto.
--
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/489#issuecomment-366105904
------------------------------------------
openzfs-developer
Archives:
https://openzfs.topicbox.com/groups/developer/discussions/T91797982fdd5b7d9-M5d0bda37f92ad6449cb8b7d4
Powered by Topicbox: https://topicbox.com