X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=cgroup.c;h=548740a08e9bd0f12741def199e40dc8843cc50d;hp=15641e672e2e071e56088c6685d2664dc48b9df9;hb=ddf16fe4da558a2778bf1ba06c965080d318cb24;hpb=a696fa2a9c2e21a1c88813235d6fc39d267f6155 diff --git a/cgroup.c b/cgroup.c index 15641e67..548740a0 100644 --- a/cgroup.c +++ b/cgroup.c @@ -6,6 +6,18 @@ #include "fio.h" #include "cgroup.h" +/* + * Check if the given root appears valid + */ +static int cgroup_check_fs(struct thread_data *td) +{ + struct stat sb; + char tmp[256]; + + sprintf(tmp, "%s/tasks", td->o.cgroup_root); + return stat(tmp, &sb); +} + static char *get_cgroup_root(struct thread_data *td) { char *str = malloc(64); @@ -67,6 +79,12 @@ int cgroup_setup(struct thread_data *td) char *root, tmp[256]; FILE *f; + if (cgroup_check_fs(td)) { + log_err("fio: blkio cgroup mount point %s not valid\n", + td->o.cgroup_root); + return 1; + } + /* * Create container, if it doesn't exist */ @@ -100,6 +118,8 @@ int cgroup_setup(struct thread_data *td) void cgroup_shutdown(struct thread_data *td) { + if (cgroup_check_fs(td)) + return; if (!td->o.cgroup_weight) return;