Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'criu/proc_parse.c')
-rw-r--r--criu/proc_parse.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/criu/proc_parse.c b/criu/proc_parse.c
index b3badb6e4..6b41a81db 100644
--- a/criu/proc_parse.c
+++ b/criu/proc_parse.c
@@ -620,17 +620,16 @@ static int handle_vma(pid_t pid, struct vma_area *vma_area, const char *file_pat
pr_info("path: %s\n", file_path);
vma_area->e->status |= VMA_AREA_SYSVIPC;
} else {
- /* Dump shmem dev, hugetlb dev (private and share) mappings the same way as memfd
- * when possible.
+ /* We dump memfd backed mapping, both normal and hugepage anonymous share
+ * mapping using memfd approach when possible.
*/
if (is_memfd(st_buf->st_dev) || is_anon_shmem_map(st_buf->st_dev) ||
- (kdat.has_memfd_hugetlb && is_hugetlb_dev(st_buf->st_dev, &hugetlb_flag))) {
+ can_dump_with_memfd_hugetlb(st_buf->st_dev, &hugetlb_flag, file_path, vma_area)) {
vma_area->e->status |= VMA_AREA_MEMFD;
vma_area->e->flags |= hugetlb_flag;
if (fault_injected(FI_HUGE_ANON_SHMEM_ID))
vma_area->e->shmid += FI_HUGE_ANON_SHMEM_ID_BASE;
} else if (is_hugetlb_dev(st_buf->st_dev, &hugetlb_flag)) {
- /* hugetlb mapping but memfd does not support HUGETLB */
vma_area->e->flags |= hugetlb_flag;
vma_area->e->flags |= MAP_ANONYMOUS;