From: Lennart Poettering Date: Tue, 15 Mar 2011 20:21:38 +0000 (+0100) Subject: cgroup: don't recheck all the time whether the systemd hierarchy is mounted, to make... X-Git-Tag: v21~75 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0ac10822732008aa2c0af7a0499c838446ac0a82;hp=8f7a3c1402a8de36b2c63935358a53510d2fe7c1;ds=sidebyside cgroup: don't recheck all the time whether the systemd hierarchy is mounted, to make strace outputs nicer and save a few stat()s --- diff --git a/src/cgroup-util.c b/src/cgroup-util.c index bbadc789a..090573bd3 100644 --- a/src/cgroup-util.c +++ b/src/cgroup-util.c @@ -484,6 +484,7 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch const char *p; char *mp; int r; + static __thread bool good = false; assert(controller); assert(fs); @@ -504,9 +505,14 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch if (asprintf(&mp, "/sys/fs/cgroup/%s", p) < 0) return -ENOMEM; - if ((r = path_is_mount_point(mp)) <= 0) { - free(mp); - return r < 0 ? r : -ENOENT; + if (!good) { + if ((r = path_is_mount_point(mp)) <= 0) { + free(mp); + return r < 0 ? r : -ENOENT; + } + + /* Cache this to save a few stat()s */ + good = true; } if (path && suffix)