On 9/29/18 7:01 PM, Paul Eggert wrote:
Bernhard Voelker wrote:
So regarding gnulib, there are 2 alternatives:
a) rename FTS_NOATIME to FTS_NOATIME, and add a retry to open/openat
in each place when that was using O_NOATIME and we got EPERM.
I didn't quite get the point of the rename; those two identifiers look
identical to me.
With the followup explanation of renaming to FTS_TRY_NOATIME,
The original commit said that FTS_NOATIME was intended to be best
effort, and that FTS_NOATIME would be ineffective in some cases. If
that's the intent, retrying would implement it.
b) remove FTS_NOATIME - the attached would do that ... in the naive
hope that no other project has picked it up yet (which I doubt).
If nobody's using FTS_NOATIME it'd probably be better to remove it, yes.
It'd be nice to hear Eric's opinion.
I could go either way. Coreutils has several utilities that do
traversal, and a 'du --noatime' that makes a best effort might be
interesting to someone. But, like you said, neither coreutils nor
findutils has actually incorporated use of FTS_NOATIME, so removing it
(on the grounds that it doesn't always do what the user wants, even if
we implement the fallback to retrying the open without O_NOATIME on
EPERM) is okay by me.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org