From: Kay Sievers Date: Wed, 11 Apr 2012 19:33:12 +0000 (+0200) Subject: tmpfiles: open directories with O_NOATIME to preserve timestamp X-Git-Tag: v183~393 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5f3d1ba124f14477d6b5434982d7d44a472a66f;p=systemd tmpfiles: open directories with O_NOATIME to preserve timestamp Before: # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' Access: 2012-04-11 21:32:48.444920237 +0200 # systemd-tmpfiles --clean # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' Access: 2012-04-11 21:36:27.628925459 +0200 After: # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' Access: 2012-04-11 21:32:48.444920237 +0200 # ./systemd-tmpfiles --clean # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' Access: 2012-04-11 21:32:48.444920237 +0200 Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=810257 --- diff --git a/src/tmpfiles.c b/src/tmpfiles.c index 5e85e374..c5f6fc00 100644 --- a/src/tmpfiles.c +++ b/src/tmpfiles.c @@ -269,7 +269,7 @@ static int dir_cleanup( DIR *sub_dir; int q; - sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW); + sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW|O_NOATIME); if (sub_dir == NULL) { if (errno != ENOENT) { log_error("opendir(%s/%s) failed: %m", p, dent->d_name);