Commit 650be3d2 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

mm: clean up parasite (v2)

Now it has only one descritor for dumping pages

v2: remove rudiments
Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent e869c16d
...@@ -57,12 +57,8 @@ struct parasite_dump_pages_args { ...@@ -57,12 +57,8 @@ struct parasite_dump_pages_args {
struct vma_entry vma_entry; struct vma_entry vma_entry;
unsigned long nrpages_dumped; /* how many pages are dumped */ unsigned long nrpages_dumped; /* how many pages are dumped */
int fd_type;
}; };
#define PG_PRIV 0
#define PG_SHARED 1
/* /*
* Misc sfuff, that is too small for separate file, but cannot * Misc sfuff, that is too small for separate file, but cannot
* be read w/o using parasite * be read w/o using parasite
......
...@@ -568,10 +568,8 @@ int parasite_dump_pages_seized(struct parasite_ctl *ctl, struct list_head *vma_a ...@@ -568,10 +568,8 @@ int parasite_dump_pages_seized(struct parasite_ctl *ctl, struct list_head *vma_a
pr_info_vma(vma_area); pr_info_vma(vma_area);
parasite_dumppages.vma_entry = vma_area->vma; parasite_dumppages.vma_entry = vma_area->vma;
if (vma_area_is(vma_area, VMA_ANON_PRIVATE) || if (!vma_area_is(vma_area, VMA_ANON_PRIVATE) &&
vma_area_is(vma_area, VMA_FILE_PRIVATE)) { !vma_area_is(vma_area, VMA_FILE_PRIVATE)) {
parasite_dumppages.fd_type = PG_PRIV;
} else {
pr_warn("Unexpected VMA area found\n"); pr_warn("Unexpected VMA area found\n");
continue; continue;
} }
......
...@@ -113,20 +113,18 @@ static inline int should_dump_page(struct vma_entry *vmae, unsigned char mincore ...@@ -113,20 +113,18 @@ static inline int should_dump_page(struct vma_entry *vmae, unsigned char mincore
#endif #endif
} }
static int fd_pages[2] = { -1, -1 }; static int fd_pages = -1;
static int dump_pages_init(parasite_status_t *st) static int dump_pages_init(parasite_status_t *st)
{ {
int ret; fd_pages = recv_fd(tsock);
if (fd_pages < 0)
ret = fd_pages[PG_PRIV] = recv_fd(tsock);
if (ret < 0)
goto err; goto err;
return 0; return 0;
err: err:
SET_PARASITE_RET(st, ret); SET_PARASITE_RET(st, fd_pages);
return -1; return -1;
} }
...@@ -145,7 +143,7 @@ static int dump_pages(struct parasite_dump_pages_args *args) ...@@ -145,7 +143,7 @@ static int dump_pages(struct parasite_dump_pages_args *args)
args->nrpages_dumped = 0; args->nrpages_dumped = 0;
prot_old = prot_new = 0; prot_old = prot_new = 0;
fd = fd_pages[args->fd_type]; fd = fd_pages;
/* Start from the end of file */ /* Start from the end of file */
sys_lseek(fd, 0, SEEK_END); sys_lseek(fd, 0, SEEK_END);
...@@ -239,8 +237,7 @@ err: ...@@ -239,8 +237,7 @@ err:
static int dump_pages_fini(void) static int dump_pages_fini(void)
{ {
sys_close(fd_pages[PG_PRIV]); sys_close(fd_pages);
return 0; return 0;
} }
......
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