|
@@ -367,7 +367,7 @@ static int scsi_req_map_sg(struct request *rq, struct scatterlist *sgl,
|
|
int nsegs, unsigned bufflen, gfp_t gfp)
|
|
int nsegs, unsigned bufflen, gfp_t gfp)
|
|
{
|
|
{
|
|
struct request_queue *q = rq->q;
|
|
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;
|
|
unsigned int data_len = 0, len, bytes, off;
|
|
struct page *page;
|
|
struct page *page;
|
|
struct bio *bio = NULL;
|
|
struct bio *bio = NULL;
|