diff --git a/block/file-posix.c b/block/file-posix.c index ad299beb38b62d8194aa30cdf6fc443aa1efaaca..928b863cedd952e2381e51f309e01b1d8a194f7b 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -1646,6 +1646,9 @@ static int handle_aiocb_truncate(RawPosixAIOData *aiocb) num = MIN(left, 65536); result = write(fd, buf, num); if (result < 0) { + if (errno == EINTR) { + continue; + } result = -errno; error_setg_errno(errp, -result, "Could not write zeros for preallocation");