From: Michael Tremer Date: Sat, 14 Dec 2024 14:11:58 +0000 (+0000) Subject: cgroups: Fix error codes X-Git-Tag: 0.9.30~718 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=986ca956ccd77d515d37a75b9400c3aa1182f405;p=pakfire.git cgroups: Fix error codes Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/cgroup.c b/src/libpakfire/cgroup.c index 6bc1a9615..9f9dd6e26 100644 --- a/src/libpakfire/cgroup.c +++ b/src/libpakfire/cgroup.c @@ -578,7 +578,7 @@ int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t m // Set value r = pakfire_cgroup_write(cgroup, "memory.min", "%zu\n", mem); - if (r) + if (r < 0) ERROR(cgroup->ctx, "%s: Could not set guaranteed memory: %m\n", pakfire_cgroup_name(cgroup)); @@ -598,7 +598,7 @@ int pakfire_cgroup_set_memory_limit(struct pakfire_cgroup* cgroup, size_t mem) { // Set value r = pakfire_cgroup_write(cgroup, "memory.max", "%zu\n", mem); - if (r) + if (r < 0) ERROR(cgroup->ctx, "%s: Could not set memory limit: %m\n", pakfire_cgroup_name(cgroup)); @@ -620,7 +620,7 @@ int pakfire_cgroup_set_pid_limit(struct pakfire_cgroup* cgroup, size_t limit) { // Set value r = pakfire_cgroup_write(cgroup, "pids.max", "%zu\n", limit); - if (r) + if (r < 0) ERROR(cgroup->ctx, "%s: Could not set PID limit: %m\n", pakfire_cgroup_name(cgroup)); @@ -633,6 +633,7 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup, int (*callback)(struct pakfire_cgroup* cgroup, const char* key, unsigned long val, void* data), void* data, char* line) { char* p = NULL; + int r; char key[NAME_MAX]; unsigned long val = 0; @@ -646,7 +647,9 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup, // First field is the key case 0: // Copy the key - pakfire_string_set(key, elem); + r = pakfire_string_set(key, elem); + if (r < 0) + return r; break; // The second field is some value @@ -667,7 +670,7 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup, // Check if we parsed both fields if (i < 2) { ERROR(cgroup->ctx, "Could not parse line\n"); - return 1; + return -EINVAL; } // Call the callback @@ -677,11 +680,10 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup, static int __pakfire_cgroup_read_stats(struct pakfire_cgroup* cgroup, const char* path, int (*callback)(struct pakfire_cgroup* cgroup, const char* key, unsigned long val, void* data), void* data) { + char buffer[BUFFER_SIZE]; char* p = NULL; int r; - char buffer[BUFFER_SIZE]; - DEBUG(cgroup->ctx, "%s: Reading stats from %s\n", pakfire_cgroup_name(cgroup), path); // Open the file @@ -813,21 +815,19 @@ int pakfire_cgroup_stat(struct pakfire_cgroup* cgroup, int r; // Check input - if (!stats) { - errno = EINVAL; - return 1; - } + if (!stats) + return -EINVAL; // Read CPU stats r = __pakfire_cgroup_read_stats(cgroup, "cpu.stat", - __pakfire_cgroup_parse_cpu_stats, &stats->cpu); - if (r) + __pakfire_cgroup_parse_cpu_stats, &stats->cpu); + if (r < 0) goto ERROR; // Read memory stats r = __pakfire_cgroup_read_stats(cgroup, "memory.stat", - __pakfire_cgroup_parse_memory_stats, &stats->memory); - if (r) + __pakfire_cgroup_parse_memory_stats, &stats->memory); + if (r < 0) goto ERROR; ERROR: @@ -841,10 +841,8 @@ ERROR: int pakfire_cgroup_stat_dump(struct pakfire_cgroup* cgroup, const struct pakfire_cgroup_stats* stats) { // Check input - if (!stats) { - errno = EINVAL; - return 1; - } + if (!stats) + return -EINVAL; DEBUG(cgroup->ctx, "%s: Total CPU time usage: %lu\n", pakfire_cgroup_name(cgroup), stats->cpu.usage_usec);