block: nr_phys_segments needs to be zero for REQ_OP_WRITE_ZEROES
authorChristoph Hellwig <hch@lst.de>
Wed, 3 Jul 2019 12:24:35 +0000 (05:24 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 3 Jul 2019 13:20:40 +0000 (07:20 -0600)
Fix a regression introduced when removing bi_phys_segments for Write Zeroes
requests, which need to have a segment count of zero, as they don't have a
payload.

Fixes: 14ccb66b3f58 ("block: remove the bi_phys_segments field in struct bio")
Reported-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c

index ca45eb51c6690ec34fe41fdff25fe31a4813f5fe..57f7990b342dd1957077ae48baf71283663c0e73 100644 (file)
@@ -105,7 +105,7 @@ static struct bio *blk_bio_discard_split(struct request_queue *q,
 static struct bio *blk_bio_write_zeroes_split(struct request_queue *q,
                struct bio *bio, struct bio_set *bs, unsigned *nsegs)
 {
-       *nsegs = 1;
+       *nsegs = 0;
 
        if (!q->limits.max_write_zeroes_sectors)
                return NULL;