2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-01 23:05:39 +00:00

mem: Use pstree_item pid in pages dump calls

Same as for files -- don't use data from soon-to-be opaque ctl.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
This commit is contained in:
Pavel Emelyanov
2016-09-28 10:42:00 +03:00
parent ee39915124
commit 781a2e0769

View File

@@ -277,7 +277,7 @@ static int __parasite_dump_pages_seized(struct pstree_item *item,
unsigned long pmc_size; unsigned long pmc_size;
pr_info("\n"); pr_info("\n");
pr_info("Dumping pages (type: %d pid: %d)\n", CR_FD_PAGES, ctl->pid.real); pr_info("Dumping pages (type: %d pid: %d)\n", CR_FD_PAGES, item->pid.real);
pr_info("----------------------------------------\n"); pr_info("----------------------------------------\n");
timing_start(TIME_MEMDUMP); timing_start(TIME_MEMDUMP);
@@ -291,7 +291,7 @@ static int __parasite_dump_pages_seized(struct pstree_item *item,
pmc_size = max(vma_area_list->priv_longest, pmc_size = max(vma_area_list->priv_longest,
vma_area_list->shared_longest); vma_area_list->shared_longest);
if (pmc_init(&pmc, ctl->pid.real, &vma_area_list->h, if (pmc_init(&pmc, item->pid.real, &vma_area_list->h,
pmc_size * PAGE_SIZE)) pmc_size * PAGE_SIZE))
return -1; return -1;
@@ -314,11 +314,11 @@ static int __parasite_dump_pages_seized(struct pstree_item *item,
* right here. For pre-dumps the pp will be taken by the * right here. For pre-dumps the pp will be taken by the
* caller and handled later. * caller and handled later.
*/ */
ret = open_page_xfer(&xfer, CR_FD_PAGEMAP, ctl->pid.virt); ret = open_page_xfer(&xfer, CR_FD_PAGEMAP, item->pid.virt);
if (ret < 0) if (ret < 0)
goto out_pp; goto out_pp;
} else { } else {
ret = check_parent_page_xfer(CR_FD_PAGEMAP, ctl->pid.virt); ret = check_parent_page_xfer(CR_FD_PAGEMAP, item->pid.virt);
if (ret < 0) if (ret < 0)
goto out_pp; goto out_pp;
@@ -348,7 +348,7 @@ static int __parasite_dump_pages_seized(struct pstree_item *item,
if (!map) if (!map)
goto out_xfer; goto out_xfer;
if (vma_area_is(vma_area, VMA_ANON_SHARED)) if (vma_area_is(vma_area, VMA_ANON_SHARED))
ret = add_shmem_area(ctl->pid.real, vma_area->e, map); ret = add_shmem_area(item->pid.real, vma_area->e, map);
else { else {
again: again:
ret = generate_iovs(vma_area, pp, map, &off, ret = generate_iovs(vma_area, pp, map, &off,
@@ -381,7 +381,7 @@ again:
* Step 4 -- clean up * Step 4 -- clean up
*/ */
ret = task_reset_dirty_track(ctl->pid.real); ret = task_reset_dirty_track(item->pid.real);
out_xfer: out_xfer:
if (!mdc->pre_dump) if (!mdc->pre_dump)
xfer.close(&xfer); xfer.close(&xfer);