]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Revert "wrapper: introduce writev(3p) wrappers"
authorJunio C Hamano <gitster@pobox.com>
Thu, 9 Apr 2026 21:48:09 +0000 (14:48 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Apr 2026 21:48:09 +0000 (14:48 -0700)
This reverts commit 1970fcef93adcc5a35f6468d00a5a634d5af2b3c; let's
not use writev() for now.

wrapper.c
wrapper.h
write-or-die.c
write-or-die.h

index be8fa575e6f4255998b23699cb6ba743d8f4866e..16f5a63fbb614a1cdc01bdc2421cab36ec3a65f7 100644 (file)
--- a/wrapper.c
+++ b/wrapper.c
@@ -323,47 +323,6 @@ ssize_t write_in_full(int fd, const void *buf, size_t count)
        return total;
 }
 
-ssize_t writev_in_full(int fd, struct iovec *iov, int iovcnt)
-{
-       ssize_t total_written = 0;
-
-       while (iovcnt) {
-               ssize_t bytes_written = writev(fd, iov, iovcnt);
-               if (bytes_written < 0) {
-                       if (errno == EINTR || errno == EAGAIN)
-                               continue;
-                       return -1;
-               }
-               if (!bytes_written) {
-                       errno = ENOSPC;
-                       return -1;
-               }
-
-               total_written += bytes_written;
-
-               /*
-                * We first need to discard any iovec entities that have been
-                * fully written.
-                */
-               while (iovcnt && (size_t)bytes_written >= iov->iov_len) {
-                       bytes_written -= iov->iov_len;
-                       iov++;
-                       iovcnt--;
-               }
-
-               /*
-                * Finally, we need to adjust the last iovec in case we have
-                * performed a partial write.
-                */
-               if (iovcnt && bytes_written) {
-                       iov->iov_base = (char *) iov->iov_base + bytes_written;
-                       iov->iov_len -= bytes_written;
-               }
-       }
-
-       return total_written;
-}
-
 ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset)
 {
        char *p = buf;
index 27519b32d1782db10411c62ead9d066b5ff2a325..15ac3bab6e974842bb1d24f093e923b34f00f8e2 100644 (file)
--- a/wrapper.h
+++ b/wrapper.h
@@ -47,15 +47,6 @@ ssize_t read_in_full(int fd, void *buf, size_t count);
 ssize_t write_in_full(int fd, const void *buf, size_t count);
 ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset);
 
-/*
- * Try to write all iovecs. Returns -1 in case an error occurred with a proper
- * errno set, the number of bytes written otherwise.
- *
- * Note that the iovec will be modified as a result of this call to adjust for
- * partial writes!
- */
-ssize_t writev_in_full(int fd, struct iovec *iov, int iovcnt);
-
 static inline ssize_t write_str_in_full(int fd, const char *str)
 {
        return write_in_full(fd, str, strlen(str));
index 5f522fb7287382b22daa6fd761e916162dde7187..01a9a51fa2fcd758b32ffc8f3e75811710804754 100644 (file)
@@ -96,14 +96,6 @@ void write_or_die(int fd, const void *buf, size_t count)
        }
 }
 
-void writev_or_die(int fd, struct iovec *iov, int iovlen)
-{
-       if (writev_in_full(fd, iov, iovlen) < 0) {
-               check_pipe(errno);
-               die_errno("writev error");
-       }
-}
-
 void fwrite_or_die(FILE *f, const void *buf, size_t count)
 {
        if (fwrite(buf, 1, count, f) != count)
index a045bdfaef1b2ef1883b43fa72d9609e51f12c71..ff0408bd849fd8af172ee727af902ef32b719de0 100644 (file)
@@ -7,7 +7,6 @@ void fprintf_or_die(FILE *, const char *fmt, ...);
 void fwrite_or_die(FILE *f, const void *buf, size_t count);
 void fflush_or_die(FILE *f);
 void write_or_die(int fd, const void *buf, size_t count);
-void writev_or_die(int fd, struct iovec *iov, int iovlen);
 
 /*
  * These values are used to help identify parts of a repository to fsync.