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

Reply via email to