To be fair, having a writable file descriptor only lets you change the
mtime to "now", and having a readable file descriptor only lets you
change the atime to "now".
Changing the times _in general_ can be seen as over-reaching those
capabilities and arguably justifies more strict checks.
E.g. setting times in the past, you can break some caching systems,
Make, etc. Setting times to "now" will not break those things.
(A bit analogous with O_APPEND vs. O_WRITE. Someone hands you an
O_APPEND descriptor and they can continue to assume you won't clobber
earlier records in their file.)
-- Jamie
--