Commit 3359824e authored by Mike Rapoport's avatar Mike Rapoport Committed by Pavel Emelyanov

criu: shmem: use page_read->read_pages rather than its inline implementation

Signed-off-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 5cad7251
...@@ -359,15 +359,13 @@ static int shmem_wait_and_open(int pid, struct shmem_info *si, VmaEntry *vi) ...@@ -359,15 +359,13 @@ static int shmem_wait_and_open(int pid, struct shmem_info *si, VmaEntry *vi)
static int restore_shmem_content(void *addr, struct shmem_info *si) static int restore_shmem_content(void *addr, struct shmem_info *si)
{ {
int ret = 0, fd_pg; int ret = 0;
struct page_read pr; struct page_read pr;
unsigned long off_real;
ret = open_page_read(si->shmid, &pr, PR_SHMEM); ret = open_page_read(si->shmid, &pr, PR_SHMEM);
if (ret <= 0) if (ret <= 0)
return -1; return -1;
fd_pg = img_raw_fd(pr.pi);
while (1) { while (1) {
unsigned long vaddr; unsigned long vaddr;
unsigned nr_pages; unsigned nr_pages;
...@@ -383,20 +381,7 @@ static int restore_shmem_content(void *addr, struct shmem_info *si) ...@@ -383,20 +381,7 @@ static int restore_shmem_content(void *addr, struct shmem_info *si)
if (vaddr + nr_pages * PAGE_SIZE > si->size) if (vaddr + nr_pages * PAGE_SIZE > si->size)
break; break;
off_real = lseek(fd_pg, 0, SEEK_CUR); pr.read_pages(&pr, vaddr, nr_pages, addr + vaddr);
ret = read(fd_pg, addr + vaddr, nr_pages * PAGE_SIZE);
if (ret != nr_pages * PAGE_SIZE) {
ret = -1;
break;
}
if (opts.auto_dedup) {
ret = punch_hole(&pr, off_real, nr_pages * PAGE_SIZE, false);
if (ret == -1) {
break;
}
}
if (pr.put_pagemap) if (pr.put_pagemap)
pr.put_pagemap(&pr); pr.put_pagemap(&pr);
......
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