Messages in this thread | | | Date | Fri, 11 Aug 2023 14:33:35 -0700 | Subject | Re: [dm-devel] [PATCH v14 03/11] block: add copy offload support | From | Bart Van Assche <> |
| |
On 8/11/23 03:52, Nitesh Shetty wrote: > + * Description: > + * Copy source offset to destination offset within block device, using > + * device's native copy offload feature.
Offloading the copy operation is not guaranteed so I think that needs to be reflected in the above comment.
> + * We perform copy operation by sending 2 bio's. > + * 1. We take a plug and send a REQ_OP_COPY_SRC bio along with source > + * sector and length. Once this bio reaches request layer, we form a > + * request and wait for dst bio to arrive.
What will happen if the queue depth of the request queue at the bottom is one?
> + blk_start_plug(&plug); > + dst_bio = blk_next_bio(src_bio, bdev, 0, REQ_OP_COPY_DST, gfp);
blk_next_bio() can return NULL so its return value should be checked.
> + dst_bio->bi_iter.bi_size = chunk; > + dst_bio->bi_iter.bi_sector = pos_out >> SECTOR_SHIFT; > + dst_bio->bi_end_io = blkdev_copy_offload_dst_endio; > + dst_bio->bi_private = offload_io;
Thanks,
Bart.
| |