if ((p = strchr(subsystem, '.')) != NULL)
*p = '\0';
+ errno = ENOENT;
path = lxc_cgroup_get_hierarchy_abs_path_data(subsystem, d);
if (path) {
ret = do_cgroup_set(path, filename, value);
+ int saved_errno = errno;
free(path);
+ errno = saved_errno;
}
return ret;
}
cgroup_devices_has_allow_or_deny(d, cg->value, true))
continue;
if (lxc_cgroup_set_data(cg->subsystem, cg->value, d)) {
+ if (do_devices && errno == EPERM) {
+ WARN("Error setting %s to %s for %s",
+ cg->subsystem, cg->value, d->name);
+ continue;
+ }
ERROR("Error setting %s to %s for %s",
cg->subsystem, cg->value, d->name);
goto out;
d->cgroup_path, cg->subsystem, cg->value) != 0) {
NihError *nerr;
nerr = nih_error_get();
+ if (do_devices) {
+ WARN("call to cgmanager_set_value_sync failed: %s", nerr->message);
+ nih_free(nerr);
+ WARN("Error setting cgroup %s:%s limit type %s", controller,
+ d->cgroup_path, cg->subsystem);
+ continue;
+ }
+
ERROR("call to cgmanager_set_value_sync failed: %s", nerr->message);
nih_free(nerr);
ERROR("Error setting cgroup %s:%s limit type %s", controller,