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

Commit f5235962 authored by Bryan Holty's avatar Bryan Holty Committed by James Bottomley
Browse files

[SCSI] scsi_lib.c: properly count the number of pages in scsi_req_map_sg()



The calculation of nr_pages in scsi_req_map_sg() doesn't account for
the fact that the first page could have an offset that pushes the end
of the buffer onto a new page.

Signed-off-by: default avatarBryan Holty <lgeek@frontiernet.net>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 9f434d4f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -367,7 +367,7 @@ static int scsi_req_map_sg(struct request *rq, struct scatterlist *sgl,
			   int nsegs, unsigned bufflen, gfp_t gfp)
{
	struct request_queue *q = rq->q;
	int nr_pages = (bufflen + PAGE_SIZE - 1) >> PAGE_SHIFT;
	int nr_pages = (bufflen + sgl[0].offset + PAGE_SIZE - 1) >> PAGE_SHIFT;
	unsigned int data_len = 0, len, bytes, off;
	struct page *page;
	struct bio *bio = NULL;