mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-06 06:34:43 +00:00
Merge pull request #829 from hallyn/2016-02-19/devices
cgroups: do not fail if setting devices cgroup fails due to EPERM
This commit is contained in:
commit
b9138559c3
@ -1285,10 +1285,13 @@ static int lxc_cgroup_set_data(const char *filename, const char *value, struct c
|
||||
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;
|
||||
}
|
||||
@ -1915,6 +1918,11 @@ static int do_setup_cgroup_limits(struct cgfs_data *d,
|
||||
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;
|
||||
|
@ -1523,6 +1523,14 @@ static bool cgm_setup_limits(void *hdata, struct lxc_list *cgroup_settings, bool
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user