mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-05 08:45:49 +00:00
proc_parse: Borrow vmi iif there is file referenced
Otherwise we migh propagate previous vfi status to vmas which actually don't match. | (00.005471) 0x2b79227d6000-0x2b79227d8000 (8K) prot 0x5 flags 0x22 off 0 reg vdso ap shmid: 0 | (00.005473) 0x2b79227d8000-0x2b79227da000 (8K) prot 0x3 flags 0x22 off 0 reg vdso ap shmid: 0 | (00.005475) 0x2b79227f1000-0x2b79227f2000 (4K) prot 0x3 flags 0x22 off 0 reg vdso ap shmid: 0 | (00.005476) 0x2b79227f2000-0x2b79227f4000 (8K) prot 0x3 flags 0x22 off 0 reg vdso ap shmid: 0 Tested-by: Pavel Tikhomirov <snorcht@gmail.com> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
committed by
Pavel Emelyanov
parent
c3d71138ec
commit
8ed215d252
@@ -172,6 +172,13 @@ static int vma_get_mapfile(struct vma_area *vma, DIR *mfd,
|
||||
if (prev_vfi->vma && vfi_equal(vfi, prev_vfi)) {
|
||||
struct vma_area *prev = prev_vfi->vma;
|
||||
|
||||
/*
|
||||
* If vfi is equal (!) and negative @vm_file_fd --
|
||||
* we have nothing to borrow for sure.
|
||||
*/
|
||||
if (prev->vm_file_fd < 0)
|
||||
return 0;
|
||||
|
||||
pr_debug("vma %"PRIx64" borrows vfi from previous %"PRIx64"\n",
|
||||
vma->e->start, prev->e->start);
|
||||
vma->vm_file_fd = prev->vm_file_fd;
|
||||
|
Reference in New Issue
Block a user