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