Bruno Haible <[EMAIL PROTECTED]> wrote:
> Jim Meyering wrote:
>> * lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Work around what
>> appears to be a kernel bug that causes utimensat to return 280
>> instead of 0, indicating success.
>
> Is it known for sure that the bug will only affect the return value, and
> that utimensat() will nevertheless have done its job?

That's my hypothesis.
I suspect that only one code path would be so faulty.
No guarantee until the bug is localized/fixed.

> If not, i.e. if
> you want to play safe, it would be appropriate to treat the return value
> 280 like -1 / ENOSYS.

That seems safe, but simulating unconditional failure is slightly risky,
too, i.e., if the function actually does the job, yet the fall-through
code fails.  It would end up reporting a failure when there was none.
I imagine that might happen due to a race that the FD-using code would
be immune to, yet the file-name-using fallback code would be subject to.


Reply via email to