From 91d4bce7c33338473f649108e326a6405eeff58b Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Thu, 23 Mar 2017 11:59:22 -0500 Subject: [PATCH] os: Check for EINTR on posix_fallocate() posix_fallocate() can return EINTR and need to be restarted - I've hit this when running weston-terminal under gdb. Signed-off-by: Derek Foreman Reviewed-by: Eric Engestrom Reviewed-by: Quentin Glidic --- shared/os-compatibility.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shared/os-compatibility.c b/shared/os-compatibility.c index 551f2a99..6b2f3770 100644 --- a/shared/os-compatibility.c +++ b/shared/os-compatibility.c @@ -178,7 +178,9 @@ os_create_anonymous_file(off_t size) return -1; #ifdef HAVE_POSIX_FALLOCATE - ret = posix_fallocate(fd, 0, size); + do { + ret = posix_fallocate(fd, 0, size); + } while (ret == EINTR); if (ret != 0) { close(fd); errno = ret;