On Mon, Aug 19, 2013 at 10:16 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > > The same argument applies to xwrite(), but currently we explicitly > catch EINTR and EAGAIN knowing that on sane systems these are the > signs that we got interrupted. > > Do we catch EINVAL unconditionally in the same codepath? No, and we shouldn't. If EINVAL happens, it will keep happening. But with the size limiter, it doesn't matter, since we won't hit the OS X braindamage. > Could > EINVAL on saner systems mean completely different thing (like our > caller is passing bogus parameters to underlying read/write, which > is a program bug we would want to catch)? Yes. Even on OS X, it means that - it's just that OS X notion of what is "bogus" is pure crap. But the thing is, looping on EINVAL would be wrong even on OS X, since unless you change the size, it will keep happening forever. But with the "limit IO to 8MB" (or whatever) patch, the issue is moot. If you get an EINVAL, it will be due to something else being horribly horribly wrong. Linus -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html