Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37e58237 authored by Ming Lin's avatar Ming Lin Committed by Jens Axboe
Browse files

block: add offset in blk_add_request_payload()



We could kmalloc() the payload, so need the offset in page.

Signed-off-by: default avatarMing Lin <ming.l@ssi.samsung.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 81b76485
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1523,6 +1523,7 @@ EXPORT_SYMBOL(blk_put_request);
 * blk_add_request_payload - add a payload to a request
 * @rq: request to update
 * @page: page backing the payload
 * @offset: offset in page
 * @len: length of the payload.
 *
 * This allows to later add a payload to an already submitted request by
@@ -1533,12 +1534,12 @@ EXPORT_SYMBOL(blk_put_request);
 * discard requests should ever use it.
 */
void blk_add_request_payload(struct request *rq, struct page *page,
		unsigned int len)
		int offset, unsigned int len)
{
	struct bio *bio = rq->bio;

	bio->bi_io_vec->bv_page = page;
	bio->bi_io_vec->bv_offset = 0;
	bio->bi_io_vec->bv_offset = offset;
	bio->bi_io_vec->bv_len = len;

	bio->bi_iter.bi_size = len;
+1 −1
Original line number Diff line number Diff line
@@ -562,7 +562,7 @@ skd_prep_discard_cdb(struct skd_scsi_request *scsi_req,
	put_unaligned_be32(count, &buf[16]);

	req = skreq->req;
	blk_add_request_payload(req, page, len);
	blk_add_request_payload(req, page, 0, len);
}

static void skd_request_fn_not_online(struct request_queue *q);
+1 −1
Original line number Diff line number Diff line
@@ -779,7 +779,7 @@ static int sd_setup_discard_cmnd(struct scsi_cmnd *cmd)
	 * discarded on disk. This allows us to report completion on the full
	 * amount of blocks described by the request.
	 */
	blk_add_request_payload(rq, page, len);
	blk_add_request_payload(rq, page, 0, len);
	ret = scsi_init_io(cmd);
	rq->__data_len = nr_bytes;

+1 −1
Original line number Diff line number Diff line
@@ -779,7 +779,7 @@ extern struct request *blk_make_request(struct request_queue *, struct bio *,
extern void blk_rq_set_block_pc(struct request *);
extern void blk_requeue_request(struct request_queue *, struct request *);
extern void blk_add_request_payload(struct request *rq, struct page *page,
		unsigned int len);
		int offset, unsigned int len);
extern int blk_lld_busy(struct request_queue *q);
extern int blk_rq_prep_clone(struct request *rq, struct request *rq_src,
			     struct bio_set *bs, gfp_t gfp_mask,