On Thu, Mar 23 2017 at 10:33am -0400, Christoph Hellwig <hch@xxxxxx> wrote: > It seems like the code currently passes whatever it was using for writes > to WRITE SAME. Just switch it to WRITE ZEROES, although that doesn't > need any payload. > > Untested, and confused by the code, maybe someone who understands it > better than me can help.. > > Not-yet-signed-off-by: Christoph Hellwig <hch@xxxxxx> See commit 70d6c400a ("dm kcopyd: add WRITE SAME support to dm_kcopyd_zero") drivers/md/dm-io.c:do_region() adjusts the WRITE SAME payload to be a single page. So you'd want to tweak dm-io.c accordingly for WRITE ZEROES (presummably no payload?) Mike > --- > drivers/md/dm-kcopyd.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c > index 9e9d04cb7d51..f85846741d50 100644 > --- a/drivers/md/dm-kcopyd.c > +++ b/drivers/md/dm-kcopyd.c > @@ -733,11 +733,11 @@ int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from, > job->pages = &zero_page_list; > > /* > - * Use WRITE SAME to optimize zeroing if all dests support it. > + * Use WRITE ZEROES to optimize zeroing if all dests support it. > */ > - job->rw = REQ_OP_WRITE_SAME; > + job->rw = REQ_OP_WRITE_ZEROES; > for (i = 0; i < job->num_dests; i++) > - if (!bdev_write_same(job->dests[i].bdev)) { > + if (!bdev_write_zeroes_sectors(job->dests[i].bdev)) { > job->rw = WRITE; > break; > } > -- > 2.11.0 >