On Mon, Jun 24, 2024 at 04:14:07PM +0530, Nitesh Shetty wrote: > c. List/ctx based approach: > A new member is added to bio, bio_copy_ctx, which will a union with > bi_integrity. Idea is once a copy bio reaches blk_mq_submit_bio, it will > add the bio to this list. Is there a reason to tie this to CONFIG_BLK_DEV_INTEGRITY? Why not use the bio_io_vec? There's no user data here, so that's unused, right? > 1. Send the destination BIO, once this reaches blk_mq_submit_bio, this > will add the destination BIO to the list inside bi_copy_ctx and return > without forming any request. > 2. Send source BIO, once this reaches blk_mq_submit_bio, this will > retrieve the destination BIO from bi_copy_ctx and form a request with > destination BIO and source BIO. After this request will be sent to > driver. Like Damien, I also don't see the point of the 2-bio requirement. Treat it like discard, and drivers can allocate "special".