if (max_bytes != (off_t) -1) {
if (max_bytes <= 0)
- return -E2BIG;
+ return -EFBIG;
if ((off_t) m > max_bytes)
m = (size_t) max_bytes;
/* As a fallback just copy bits by hand */
{
char buf[m];
- ssize_t k;
+ int r;
n = read(fdf, buf, m);
if (n < 0)
if (n == 0) /* EOF */
break;
- errno = 0;
- k = loop_write(fdt, buf, n, false);
- if (k < 0)
- return k;
- if (k != n)
- return errno ? -errno : -EIO;
+ r = loop_write(fdt, buf, n, false);
+ if (r < 0)
+ return r;
}