summaryrefslogtreecommitdiffstats
path: root/source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch')
-rw-r--r--source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch b/source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch
new file mode 100644
index 000000000..4b192c1fb
--- /dev/null
+++ b/source/a/procps/procps-3.2.8-ps-cgroup-suppress-root-group.patch
@@ -0,0 +1,36 @@
+--- procps-3.2.8/ps/output.c 2010-05-18 06:00:18.000000000 +0200
++++ procps-3.2.8.lennart/ps/output.c 2010-05-18 05:59:46.000000000 +0200
+@@ -1109,7 +1109,7 @@
+ static int pr_cgroup(char *restrict const outbuf, const proc_t *restrict const pp){
+ char filename[48];
+ FILE *fd;
+- int counter = 0;
++ int counter = 0, last_begin = 0, slash = 0;
+ int c;
+ int is_cgroup = 0;
+
+@@ -1121,15 +1121,22 @@
+ if (is_cgroup == 0) {
+ if (c == ':') {
+ is_cgroup = 1;
++ slash = 0;
+ if (counter>0)
+ outbuf[counter++]=';';
+ }
+ }else
+- if ((c == '\n') || (c == '\0'))
+- is_cgroup = 0;
++ if ((c == '\n') || (c == '\0')){
++ if (slash) /* if the last char was a / this process is in the root cgroup which we should suppress */
++ counter = last_begin;
+ else
++ last_begin = counter;
++ is_cgroup = 0;
++ } else {
++ slash = c == '/';
+ outbuf[counter++]=c;
+ }
++ }
+ outbuf[counter]='\0';
+ close(fd);
+ if (counter>0)