mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
mem: Handle the case when kernel doesn't support dirty track reset
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Acked-by: Andrew Vagin <avagin@virtuozzo.com> Tested-by: Adrian Reber <adrian@lisas.de>
This commit is contained in:
parent
d7684252c8
commit
6853c480ad
1 changed files with 11 additions and 6 deletions
17
mem.c
17
mem.c
|
|
@ -50,15 +50,20 @@ int do_task_reset_dirty_track(int pid)
|
|||
return errno == EACCES ? 1 : -1;
|
||||
|
||||
ret = write(fd, cmd, sizeof(cmd));
|
||||
close(fd);
|
||||
|
||||
if (ret < 0) {
|
||||
pr_warn("Can't reset %d's dirty memory tracker (%d)\n", pid, errno);
|
||||
return -1;
|
||||
if (errno == EINVAL) /* No clear-soft-dirty in kernel */
|
||||
ret = 1;
|
||||
else {
|
||||
pr_perror("Can't reset %d's dirty memory tracker (%d)\n", pid, errno);
|
||||
ret = -1;
|
||||
}
|
||||
} else {
|
||||
pr_info(" ... done\n");
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
pr_info(" ... done\n");
|
||||
return 0;
|
||||
close(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
unsigned int dump_pages_args_size(struct vm_area_list *vmas)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue