summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds-send.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/cmds-send.c b/cmds-send.c
index bf1d9733..5fe87899 100644
--- a/cmds-send.c
+++ b/cmds-send.c
@@ -195,24 +195,26 @@ static int add_clone_source(struct btrfs_send *s, u64 root_id)
return 0;
}
-static int write_buf(int fd, const void *buf, int size)
+static int write_buf(int fd, const char *buf, size_t size)
{
int ret;
- int pos = 0;
+ size_t pos = 0;
while (pos < size) {
- ret = write(fd, (char*)buf + pos, size - pos);
- if (ret < 0) {
+ ssize_t wbytes;
+
+ wbytes = write(fd, buf + pos, size - pos);
+ if (wbytes < 0) {
ret = -errno;
error("failed to dump stream: %s", strerror(-ret));
goto out;
}
- if (!ret) {
+ if (!wbytes) {
ret = -EIO;
error("failed to dump stream: %s", strerror(-ret));
goto out;
}
- pos += ret;
+ pos += wbytes;
}
ret = 0;