fix and simplify futimesat fallback in utimensat
authorRich Felker <dalias@aerifal.cx>
Sat, 27 Jul 2019 14:20:01 +0000 (10:20 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 27 Jul 2019 17:43:13 +0000 (13:43 -0400)
commitcb856a616076c0df27dad7222640814ae58cdc96
tree806a00171641329ed75a6ff82ed02f06953426ca
parent331993e3fc3623f111d95796d3d7f30b4f6552c1
fix and simplify futimesat fallback in utimensat

previously the fallback wrongly failed with EINVAL rather than ENOSYS
when UTIME_NOW was used with one component but not both. commit
dd5f50da6f6c3df5647e922e47f8568a8896a752 introduced this behavior when
initially adding the fallback support.

instead, detect the case where both are UTIME_NOW early and replace
with a null times pointer; this may improve performance slightly (less
copy from user), and removes the complex logic from the fallback case.
it also makes things slightly simpler for adding time64 code paths.
src/stat/utimensat.c