Commit 4335be91 authored by Mike Rapoport's avatar Mike Rapoport Committed by Andrei Vagin

pagemap: verify the number of pages returned by receive_remote_pages_info

CID 173076, issues/259

travis-ci: success for pagemap: verify the number of pages returned by receive_remote_pages_info
Signed-off-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 1e905594
...@@ -440,7 +440,7 @@ static int read_page_complete(int pid, unsigned long vaddr, int nr_pages, void * ...@@ -440,7 +440,7 @@ static int read_page_complete(int pid, unsigned long vaddr, int nr_pages, void *
static int maybe_read_page_remote(struct page_read *pr, unsigned long vaddr, static int maybe_read_page_remote(struct page_read *pr, unsigned long vaddr,
int nr, void *buf, unsigned flags) int nr, void *buf, unsigned flags)
{ {
int ret, pid; int ret, pid, new_nr;
/* We always do PR_ASAP mode here (FIXME?) */ /* We always do PR_ASAP mode here (FIXME?) */
ret = request_remote_pages(pr->pid, vaddr, nr); ret = request_remote_pages(pr->pid, vaddr, nr);
...@@ -453,9 +453,12 @@ static int maybe_read_page_remote(struct page_read *pr, unsigned long vaddr, ...@@ -453,9 +453,12 @@ static int maybe_read_page_remote(struct page_read *pr, unsigned long vaddr,
* Note, that for async remote page_read, the actual * Note, that for async remote page_read, the actual
* transfer happens in the lazy-pages daemon * transfer happens in the lazy-pages daemon
*/ */
ret = receive_remote_pages_info(&nr, &vaddr, &pid); ret = receive_remote_pages_info(&new_nr, &vaddr, &pid);
if (ret == 0) if (ret == 0) {
if (new_nr < 0 || new_nr > nr)
return -1;
ret = receive_remote_pages(nr * PAGE_SIZE, buf); ret = receive_remote_pages(nr * PAGE_SIZE, buf);
}
if (ret == 0 && pr->io_complete) if (ret == 0 && pr->io_complete)
ret = pr->io_complete(pr, vaddr, nr); ret = pr->io_complete(pr, vaddr, nr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment