block: ensure bios return from blk_get_request are properly initialized

blk_get_request is used for BLOCK_PC and similar passthrough requests.
Currently we always need to call blk_rq_set_block_pc or an open coded
version of it to allow appending bios using the request mapping helpers
later on, which is a somewhat awkward API.  Instead move the
initialization part of blk_rq_set_block_pc into blk_get_request, so that
we always have a safe to use request.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
Christoph Hellwig 2016-07-19 11:31:50 +02:00 • committed by Jens Axboe
commit 0c4de0f33b
4 changed files with 11 additions and 10 deletions

View file

@ -243,7 +243,6 @@ static int virtblk_get_id(struct gendisk *disk, char *id_str)
req = blk_get_request(q, READ, GFP_KERNEL);
if (IS_ERR(req))
return PTR_ERR(req);
blk_rq_set_block_pc(req);
req->cmd_type = REQ_TYPE_DRV_PRIV;
err = blk_rq_map_kern(q, req, id_str, VIRTIO_BLK_ID_BYTES, GFP_KERNEL);