Commit 1f2cc31f authored by Mike Rapoport's avatar Mike Rapoport Committed by Andrei Vagin

lazy-pages: treat ESRCH returned by uffdio_copy as process exit condition

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=e86b298bebf7e799e4b7232e9135799f1947552eSigned-off-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent e5d7d71b
...@@ -688,7 +688,7 @@ static int uffd_copy(struct lazy_pages_info *lpi, __u64 address, int nr_pages) ...@@ -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); lp_debug(lpi, "uffd_copy: 0x%llx/%ld\n", uffdio_copy.dst, len);
rc = ioctl(lpi->lpfd.fd, UFFDIO_COPY, &uffdio_copy); rc = ioctl(lpi->lpfd.fd, UFFDIO_COPY, &uffdio_copy);
if (rc) { if (rc) {
if (errno == ENOSPC) { if (errno == ENOSPC || errno == ESRCH) {
handle_exit(lpi); handle_exit(lpi);
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