- ssize_t bytes_written;
- size_t bytes_remaining;
-
- for (bytes_remaining = count;
- bytes_remaining != 0;
- bytes_remaining -= bytes_written, buf += bytes_written,
- offset += bytes_written)
- {
- bytes_written = pwrite(fd->fd, buf, bytes_remaining, offset);
- if (unlikely(bytes_written < 0)) {
- if (errno == EINTR)
- continue;
- return WIMLIB_ERR_WRITE;
- }
- }
- return 0;
-}
-
-#if 0
-/* Wrapper around writev() that checks for errors and keep retrying until all
- * requested bytes have been written.
- *
- * Return values:
- * WIMLIB_ERR_SUCCESS (0)
- * WIMLIB_ERR_WRITE (errno set)
- * */
-int
-full_writev(struct filedes *fd, struct iovec *iov, int iovcnt)
-{
- size_t total_bytes_written = 0;
- while (iovcnt > 0) {
- ssize_t bytes_written;
-
- bytes_written = writev(fd->fd, iov, iovcnt);
- if (unlikely(bytes_written < 0)) {
+ while (count) {
+ ssize_t ret = pwrite(fd->fd, buf, count, offset);
+ if (unlikely(ret < 0)) {