Re: [PATCH v1 4/4] builtin/unpack-objects.c: change xwrite to write_in_full to allow large sizes.
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 26, 2024, 23:56 UTC
- Message-ID
- <xmqqr0gyixuu.fsf@gitster.g>
- In-Reply-To
- <20240226220539.3494-5-randall.becker@nexbridge.ca>
"Randall S. Becker" <the.n.e.key@gmail.com> writes:
Show 10 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. > > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com> > --- > builtin/unpack-objects.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
The same comment as [1/4]. Perhaps your MAX_IO_SIZE should be tuned downwards, so that xwrite() works as it was designed to work.
Show 13 quoted lines
> diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
> index e0a701f2b3..6935c4574e 100644
> --- a/builtin/unpack-objects.c
> +++ b/builtin/unpack-objects.c
> @@ -680,7 +680,7 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED)
>
> /* Write the last part of the buffer to stdout */
> while (len) {
> - int ret = xwrite(1, buffer + offset, len);
> + int ret = write_in_full(1, buffer + offset, len);
> if (ret <= 0)
> break;
> len -= ret;