Subject: Re: [PATCH] Fix checkout of large files to network shares under Windows XP

From: Johannes Sixt <[email-masked]>
Date: Tue, 20 Apr 2010 14:57:00 +0200

Am 4/20/2010 14:42, schrieb Sebastian Schuberth:
> On Mon, Apr 19, 2010 at 22:43, René Scharfe <[email-masked]> wrote:
>> Shouldn't the loop be left in the successful case, too?  write(2) is
>> allowed to write less than requested, so the caller already needs to
>> deal with that case anyway.
> 
> I prefer to make the wrapper as transparent as possible. If a direct
> call to write would not write less than requested, the wrapper should
> not either.

Sure, but René meant the opposite case: When fewer bytes than requested
were written, then you shouldn't retry to write more! That is, you should
exit the loop when write(fd, buf, n) does not return n.

I still find your code unnecessarily hard to read. In particular, you
should extract the non-problematic case out of the loop. If you followed
my suggestion elsewhere in the thread, you wouldn't have to write any
conditionals that 'break' out of a loop.

-- Hannes