Commit 164bc4bd authored by Tikhomirov Pavel's avatar Tikhomirov Pavel Committed by Pavel Emelyanov

v3 page-read: check that don't read page from hole

Signed-off-by: 's avatarTikhomirov Pavel <snorcht@gmail.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent ca1f60d2
...@@ -125,8 +125,13 @@ static int read_pagemap_page(struct page_read *pr, unsigned long vaddr, void *bu ...@@ -125,8 +125,13 @@ static int read_pagemap_page(struct page_read *pr, unsigned long vaddr, void *bu
if (ret == -1) if (ret == -1)
return ret; return ret;
} else { } else {
off_t current_vaddr = lseek(pr->fd_pg, 0, SEEK_CUR);
pr_debug("\tpr%u Read page %lx from self %lx/%"PRIx64"\n", pr->id, pr_debug("\tpr%u Read page %lx from self %lx/%"PRIx64"\n", pr->id,
vaddr, pr->cvaddr, lseek(pr->fd_pg, 0, SEEK_CUR)); vaddr, pr->cvaddr, current_vaddr);
if (current_vaddr != lseek(pr->fd_pg, current_vaddr, SEEK_DATA)) {
pr_perror("Can't read page because of hole /%"PRIx64, current_vaddr);
return -1;
}
ret = read(pr->fd_pg, buf, PAGE_SIZE); ret = read(pr->fd_pg, buf, PAGE_SIZE);
if (ret != PAGE_SIZE) { if (ret != PAGE_SIZE) {
pr_perror("Can't read mapping page %d", ret); pr_perror("Can't read mapping page %d", ret);
......
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