From: Daniel Hokka Zakrisson Date: Fri, 18 Mar 2011 13:07:54 +0000 (+0100) Subject: Support base in vserver-stat X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83fd153555610839df8100ac8f67d1ac294e9054;hp=38c8dfe96049ba7e5af1e909e9e9cefe4b66369d;p=util-vserver.git Support base in vserver-stat --- diff --git a/src/vserver-stat.c b/src/vserver-stat.c index 43e15f3..269edb0 100644 --- a/src/vserver-stat.c +++ b/src/vserver-stat.c @@ -308,7 +308,7 @@ registerXidCgroups(struct Vector *vec, struct process_info *process) int cpu; char vhi_name[65], filename[128], - cgroup[65], + cgroup[129], buf[30]; int fd; ssize_t cgroup_len; @@ -347,6 +347,21 @@ registerXidCgroups(struct Vector *vec, struct process_info *process) cgroup[cgroup_len] = 0; } + if ((fd = open(DEFAULTCONFDIR "/cgroup/base", O_RDONLY)) != -1) { + len = read(fd, cgroup + cgroup_len, sizeof(cgroup) - cgroup_len); + if (len == -1) { + perror("read(cgroup/base)"); + return; + } + close(fd); + cgroup_len += len; + if (cgroup[cgroup_len - 1] != '/') { + cgroup[cgroup_len] = '/'; + cgroup_len += 1; + } + cgroup[cgroup_len] = 0; + } + len = strlen(vhi_name); if ((len + sizeof("/cgroup/name")) >= sizeof(filename)) { WRITE_MSG(2, "too long context name: ");