[CRIU] [PATCH 4/7] mem: Add pstree_item arg to dump_pages calls

Pavel Emelyanov xemul at virtuozzo.com
Wed Sep 28 00:42:10 PDT 2016


Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
---
 criu/cr-dump.c     |  4 ++--
 criu/include/mem.h |  5 +++--
 criu/mem.c         | 12 +++++++-----
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/criu/cr-dump.c b/criu/cr-dump.c
index 2b4e680..a2611ee 100644
--- a/criu/cr-dump.c
+++ b/criu/cr-dump.c
@@ -1179,7 +1179,7 @@ static int pre_dump_one_task(struct pstree_item *item)
 	mdc.pre_dump = true;
 	mdc.lazy = false;
 
-	ret = parasite_dump_pages_seized(parasite_ctl, &vmas, &mdc);
+	ret = parasite_dump_pages_seized(item, &vmas, &mdc, parasite_ctl);
 	if (ret)
 		goto err_cure;
 
@@ -1339,7 +1339,7 @@ static int dump_one_task(struct pstree_item *item)
 	mdc.pre_dump = false;
 	mdc.lazy = opts.lazy_pages;
 
-	ret = parasite_dump_pages_seized(parasite_ctl, &vmas, &mdc);
+	ret = parasite_dump_pages_seized(item, &vmas, &mdc, parasite_ctl);
 	if (ret)
 		goto err_cure;
 
diff --git a/criu/include/mem.h b/criu/include/mem.h
index f1e6b78..f89947b 100644
--- a/criu/include/mem.h
+++ b/criu/include/mem.h
@@ -20,9 +20,10 @@ extern bool page_in_parent(bool dirty);
 extern int prepare_mm_pid(struct pstree_item *i);
 extern int do_task_reset_dirty_track(int pid);
 extern unsigned int dump_pages_args_size(struct vm_area_list *vmas);
-extern int parasite_dump_pages_seized(struct parasite_ctl *ctl,
+extern int parasite_dump_pages_seized(struct pstree_item *item,
 				      struct vm_area_list *vma_area_list,
-				      struct mem_dump_ctl *mdc);
+				      struct mem_dump_ctl *mdc,
+				      struct parasite_ctl *ctl);
 
 #define PME_PRESENT		(1ULL << 63)
 #define PME_SWAP		(1ULL << 62)
diff --git a/criu/mem.c b/criu/mem.c
index 183245e..ddcd55e 100644
--- a/criu/mem.c
+++ b/criu/mem.c
@@ -280,10 +280,11 @@ static int xfer_pages(struct page_pipe *pp, struct page_xfer *xfer, bool lazy)
 	return ret;
 }
 
-static int __parasite_dump_pages_seized(struct parasite_ctl *ctl,
+static int __parasite_dump_pages_seized(struct pstree_item *item,
 		struct parasite_dump_pages_args *args,
 		struct vm_area_list *vma_area_list,
-		struct mem_dump_ctl *mdc)
+		struct mem_dump_ctl *mdc,
+		struct parasite_ctl *ctl)
 {
 	pmc_t pmc = PMC_INIT;
 	struct page_pipe *pp;
@@ -419,9 +420,10 @@ out:
 	return ret;
 }
 
-int parasite_dump_pages_seized(struct parasite_ctl *ctl,
+int parasite_dump_pages_seized(struct pstree_item *item,
 		struct vm_area_list *vma_area_list,
-		struct mem_dump_ctl *mdc)
+		struct mem_dump_ctl *mdc,
+		struct parasite_ctl *ctl)
 {
 	int ret;
 	struct parasite_dump_pages_args *pargs;
@@ -448,7 +450,7 @@ int parasite_dump_pages_seized(struct parasite_ctl *ctl,
 		return -1;
 	}
 
-	ret = __parasite_dump_pages_seized(ctl, pargs, vma_area_list, mdc);
+	ret = __parasite_dump_pages_seized(item, pargs, vma_area_list, mdc, ctl);
 	if (ret) {
 		pr_err("Can't dump page with parasite\n");
 		/* Parasite will unprotect VMAs after fail in fini() */
-- 
2.5.0



More information about the CRIU mailing list