mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-06 13:17:44 +03:00
cgroup: IODeviceWeight= or friends can take device node files in /run/systemd/inaccessible/
systemd creates several device nodes in /run/systemd/inaccessible/. This makes CGroup's settings related to IO can take device node files in the directory.
This commit is contained in:
parent
845001221d
commit
32048f5414
@ -576,7 +576,8 @@ int bus_cgroup_set_property(
|
||||
|
||||
while ((r = sd_bus_message_read(message, "(st)", &path, &u64)) > 0) {
|
||||
|
||||
if (!path_startswith(path, "/dev"))
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/"))
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path %s specified in %s= is not a device file in /dev", name, path);
|
||||
|
||||
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
|
||||
@ -663,7 +664,8 @@ int bus_cgroup_set_property(
|
||||
|
||||
while ((r = sd_bus_message_read(message, "(st)", &path, &weight)) > 0) {
|
||||
|
||||
if (!path_startswith(path, "/dev"))
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/"))
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path %s specified in %s= is not a device file in /dev", name, path);
|
||||
|
||||
if (!CGROUP_WEIGHT_IS_OK(weight) || weight == CGROUP_WEIGHT_INVALID)
|
||||
@ -789,7 +791,8 @@ int bus_cgroup_set_property(
|
||||
|
||||
while ((r = sd_bus_message_read(message, "(st)", &path, &u64)) > 0) {
|
||||
|
||||
if (!path_startswith(path, "/dev"))
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/"))
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path %s specified in %s= is not a device file in /dev", name, path);
|
||||
|
||||
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
|
||||
@ -888,7 +891,8 @@ int bus_cgroup_set_property(
|
||||
|
||||
while ((r = sd_bus_message_read(message, "(st)", &path, &weight)) > 0) {
|
||||
|
||||
if (!path_startswith(path, "/dev"))
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/"))
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path %s specified in %s= is not a device file in /dev", name, path);
|
||||
|
||||
if (!CGROUP_BLKIO_WEIGHT_IS_OK(weight) || weight == CGROUP_BLKIO_WEIGHT_INVALID)
|
||||
|
@ -3525,7 +3525,8 @@ int config_parse_device_allow(
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (!is_deviceallow_pattern(path)) {
|
||||
if (!is_deviceallow_pattern(path) &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/")) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid device node path '%s'. Ignoring.", path);
|
||||
return 0;
|
||||
}
|
||||
@ -3625,7 +3626,8 @@ int config_parse_io_device_weight(
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (!path_startswith(path, "/dev")) {
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/")) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid device node path '%s'. Ignoring.", path);
|
||||
return 0;
|
||||
}
|
||||
@ -3698,7 +3700,8 @@ int config_parse_io_limit(
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (!path_startswith(path, "/dev")) {
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/")) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid device node path '%s'. Ignoring.", path);
|
||||
return 0;
|
||||
}
|
||||
@ -3812,7 +3815,8 @@ int config_parse_blockio_device_weight(
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (!path_startswith(path, "/dev")) {
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/")) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid device node path '%s'. Ignoring.", path);
|
||||
return 0;
|
||||
}
|
||||
@ -3886,7 +3890,8 @@ int config_parse_blockio_bandwidth(
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (!path_startswith(path, "/dev")) {
|
||||
if (!path_startswith(path, "/dev") &&
|
||||
!path_startswith(path, "/run/systemd/inaccessible/")) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid device node path '%s'. Ignoring.", path);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user