Re: [PATCH v2 05/10] block: add emulation for copy
From: Mikulas Patocka <mpatocka@redhat.com>
Date: 2022-02-16 13:33:04
Also in:
dm-devel, linux-fsdevel, linux-nvme, linux-scsi
From: Mikulas Patocka <mpatocka@redhat.com>
Date: 2022-02-16 13:33:04
Also in:
dm-devel, linux-fsdevel, linux-nvme, linux-scsi
On Mon, 7 Feb 2022, Nitesh Shetty wrote:
+ goto retry; + return PTR_ERR(bio); + } + + bio->bi_iter.bi_sector = sector >> SECTOR_SHIFT; + bio->bi_opf = op; + bio_set_dev(bio, bdev);@@ -346,6 +463,8 @@ int blkdev_issue_copy(struct block_device *src_bdev, int nr, if (blk_check_copy_offload(src_q, dest_q)) ret = blk_copy_offload(src_bdev, nr, rlist, dest_bdev, gfp_mask); + else + ret = blk_copy_emulate(src_bdev, nr, rlist, dest_bdev, gfp_mask); return ret; }
The emulation is not reliable because a device mapper device may be reconfigured and it may lose the copy capability between the calls to blk_check_copy_offload and blk_copy_offload. You should call blk_copy_emulate if blk_copy_offload returns an error. Mikulas