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

Reply via email to