Commit 2cc7488d authored by Cyrill Gorcunov's avatar Cyrill Gorcunov

dump: Make VMA parsing to handle absence of map_files

Needed in testing purposes. Also make free_mappings
being a global one (will need it in restorer).
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@gmail.com>
parent 214b8a6a
......@@ -56,7 +56,7 @@ static void free_pstree(struct list_head *pstree_list)
INIT_LIST_HEAD(pstree_list);
}
static void free_mappings(struct list_head *vma_area_list)
void free_mappings(struct list_head *vma_area_list)
{
struct vma_area *vma_area, *p;
......@@ -78,7 +78,7 @@ static int collect_mappings(pid_t pid, struct list_head *vma_area_list)
pr_info("Collecting mappings (pid: %d)\n", pid);
pr_info("----------------------------------------\n");
ret = parse_maps(pid, vma_area_list);
ret = parse_maps(pid, vma_area_list, true);
if (ret)
goto err;
......
......@@ -76,6 +76,8 @@ int prep_cr_fdset_for_restore(struct cr_fdset *cr_fdset,
void close_cr_fdset(struct cr_fdset *cr_fdset);
void free_cr_fdset(struct cr_fdset **cr_fdset);
void free_mappings(struct list_head *vma_area_list);
struct vma_area {
struct list_head list;
struct vma_entry vma;
......
......@@ -151,7 +151,7 @@ void printk_vma(struct vma_area *vma_area);
#define pr_info_siginfo(siginfo) printk_siginfo(siginfo)
int reopen_fd_as(int new_fd, int old_fd);
int parse_maps(pid_t pid, struct list_head *vma_list);
int parse_maps(pid_t pid, struct list_head *vma_area_list, bool use_map_files);
int close_safe(int *fd);
void hex_dump(void *addr, unsigned long len);
......
......@@ -231,7 +231,7 @@ int reopen_fd_as(int new_fd, int old_fd)
return new_fd;
}
int parse_maps(pid_t pid, struct list_head *vma_area_list)
int parse_maps(pid_t pid, struct list_head *vma_area_list, bool use_map_files)
{
struct vma_area *vma_area = NULL;
u64 start, end, pgoff;
......@@ -260,7 +260,7 @@ int parse_maps(pid_t pid, struct list_head *vma_area_list)
* I'm debugging it on old kernel ;)
*/
map_files_dir = opendir(map_files_path);
if (!map_files_dir) {
if (use_map_files && !map_files_dir) {
pr_err("Can't open %s, old kernel?\n",
map_files_path);
goto err;
......
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