fellow_log: fellow_io_p(read|write)_sync to return -errno upon error

to match the result of io_uring

Ref a9700c63
Ref #65
parent a87dd242
......@@ -979,10 +979,10 @@ fellow_io_pread_sync(const struct fellow_fd *ffd, void *bufa,
do {
r = pread(ffd->fd, buf, sz, off);
if (r <= 0) {
rdsz = r;
if (r < 0)
rdsz = -errno;
if (r <= 0)
break;
}
rdsz += r;
off += r;
buf += r;
......@@ -1008,6 +1008,8 @@ fellow_io_pwrite_sync(const struct fellow_fd *ffd, const void *buf,
assert (sz <= INT32_MAX);
wrsz = pwrite(ffd->fd, buf, sz, off);
if (wrsz < 0)
wrsz = -errno;
assert(wrsz >= INT32_MIN);
assert(wrsz <= INT32_MAX);
return ((int32_t)wrsz);
......
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