[CRIU] [PATCH] lazy-pages: treat ESRCH returned by uffdio_copy as process exit condition

Mike Rapoport rppt at linux.vnet.ibm.com
Mon Aug 14 16:50:36 MSK 2017


Newer kernels will report ESRCH when uffdio_copy is attempted when the
process is exiting [1].
We take care of the new errno value and keep ENOSPC for compatibility.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/userfaultfd.c?id=e86b298bebf7e799e4b7232e9135799f1947552e

Signed-off-by: Mike Rapoport <rppt at linux.vnet.ibm.com>
---
 criu/uffd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/criu/uffd.c b/criu/uffd.c
index ab7c028..c5ad785 100644
--- a/criu/uffd.c
+++ b/criu/uffd.c
@@ -688,7 +688,7 @@ static int uffd_copy(struct lazy_pages_info *lpi, __u64 address, int nr_pages)
 	lp_debug(lpi, "uffd_copy: 0x%llx/%ld\n", uffdio_copy.dst, len);
 	rc = ioctl(lpi->lpfd.fd, UFFDIO_COPY, &uffdio_copy);
 	if (rc) {
-		if (errno == ENOSPC) {
+		if (errno == ENOSPC || errno == ESRCH) {
 			handle_exit(lpi);
 			return 0;
 		}
-- 
2.7.4



More information about the CRIU mailing list