blob: 662d40b1ca797a95adae29c2a13a07d6311c0dbf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
From 19356dfbd6b3e7d4880d29b1f4b5c0cb665eb467 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 11 Sep 2015 16:16:26 +0200
Subject: [PATCH] io: fix posix_fallocate failure handling
We need fall back to a splice buffer if posix_fallocate call fails due
to file being a device (eg tty) or a pipe. This fixes apk fetch --stdout.
---
src/io.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/io.c b/src/io.c
index a321c0c..65851be 100644
--- a/src/io.c
+++ b/src/io.c
@@ -149,7 +149,7 @@ size_t apk_istream_splice(void *stream, int fd, size_t size,
if (r == 0)
mmapbase = mmap(NULL, size, PROT_READ | PROT_WRITE,
MAP_SHARED, fd, 0);
- else if (r != ENOSYS)
+ else if (r == EBADF || r == EFBIG || r == ENOSPC || r == EIO)
return -r;
}
if (bufsz > 2*1024*1024)
--
2.5.1
|