Re: [PATCH v1 1/4] builtin/index-pack.c: change xwrite to write_in_full to allow large sizes.
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Feb 26, 2024, 22:38 UTC
- Message-ID
- <Zd0S7aUIG1bhGkaX@nand.local>
- In-Reply-To
- <20240226220539.3494-2-randall.becker@nexbridge.ca>
On Mon, Feb 26, 2024 at 05:05:35PM -0500, Randall S. Becker wrote:
Show 5 quoted lines
> From: "Randall S. Becker" <rsbecker@nexbridge.com> > > This change is required because some platforms do not support file writes of > arbitrary sizes (e.g, NonStop). xwrite ends up truncating the output to the > maximum single I/O size possible for the destination device.
Hmm. I'm not sure I understand what NonStop's behavior is here...
Show 15 quoted lines
> diff --git a/builtin/index-pack.c b/builtin/index-pack.c
> index a3a37bd215..f80b8d101a 100644
> --- a/builtin/index-pack.c
> +++ b/builtin/index-pack.c
> @@ -1571,7 +1571,7 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
> * the last part of the input buffer to stdout.
> */
> while (input_len) {
> - err = xwrite(1, input_buffer + input_offset, input_len);
> + err = write_in_full(1, input_buffer + input_offset, input_len);
> if (err <= 0)
> break;
> input_len -= err;
> --
> 2.42.1The code above loops while input_len is non-zero, and correctly decrements it by the number of bytes written by xwrite() after each iteration.
Assuming that xwrite()/write(2) works how I think it does on NonStop, I'm not sure I understand why this change is necessary.
Thanks, Taylor