On Thu, Oct 27, 2016 at 3:24 AM, Jeff King <peff@xxxxxxxx> wrote: > > +cc Linus as the original author of 144bde78e9 in case there is > something subtle I'm missing, but this really just seems like it's > an outdated optimization. I'd *really* like to keep O_NOATIME if at all possible. It made a huge difference on older kernels, and I'm not convinced that relatime really fixes it as well as O_NOATIME. There are people who don't like relatime. And even if you do have relatime enabled, it will update atime once every day, so then this makes your filesystem have a storm of nasty inode writebacks if you haven't touched that git repo in a while. If this is purely about mixing things up with O_CLOEXEC, then that is *trivially* fixable by just using fcntl(fd, F_SETFD, FD_CLOEXEC); after the open. Which is what you have to do anyway if you want to be portable, so its' not like you could avoid that complexity in the first place. Note that you can *not* do the same thing with O_NOATIME, since the whole point of O_NOATIME is that it changes the behavior of the open itself (unlike O_CLOEXEC which changes _later_ behavior, and can always be replaced by FD_CLOEXEC fnclt modulo races that are immaterial for git) Linus