From c6c3dd59712b40e89455075b9e993ec901739c42 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Tue, 17 Aug 2021 14:44:44 +0200 Subject: [PATCH] vircgroup: fix build on non-linux systems MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit virCgroupGetInode needs to be in '#ifdef __linux__'. Signed-off-by: Pavel Hrdina Reviewed-by: Ján Tomko --- src/util/vircgroup.c | 70 ++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index 4c9445340e..37b63a2e2d 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -3005,6 +3005,37 @@ virCgroupControllerAvailable(int controller) return virCgroupHasController(cgroup, controller); } + +/** + * virCgroupGetInode: + * + * @cgroup: the cgroup to get inode for + * + * Get the @cgroup inode and return its value to the caller. + * + * Returns inode on success, -1 on error with error message reported. + */ +int +virCgroupGetInode(virCgroup *cgroup) +{ + struct stat st; + int controller = virCgroupGetAnyController(cgroup); + g_autofree char *path = NULL; + + if (controller < 0) + return -1; + + if (virCgroupPathOfController(cgroup, controller, "", &path) < 0) + return -1; + + if (stat(path, &st) < 0) { + virReportSystemError(errno, _("failed to get stat for '%s'"), path); + return -1; + } + + return st.st_ino; +} + #else /* !__linux__ */ bool @@ -3769,6 +3800,14 @@ virCgroupControllerAvailable(int controller G_GNUC_UNUSED) { return false; } + +int +virCgroupGetInode(virCgroup *cgroup G_GNUC_UNUSED) +{ + virReportSystemError(ENOSYS, "%s", + _("Control groups not supported on this platform")); + return -1; +} #endif /* !__linux__ */ @@ -3973,34 +4012,3 @@ virCgroupGetCpuPeriodQuota(virCgroup *cgroup, unsigned long long *period, return 0; } - - -/** - * virCgroupGetInode: - * - * @cgroup: the cgroup to get inode for - * - * Get the @cgroup inode and return its value to the caller. - * - * Returns inode on success, -1 on error with error message reported. - */ -int -virCgroupGetInode(virCgroup *cgroup) -{ - struct stat st; - int controller = virCgroupGetAnyController(cgroup); - g_autofree char *path = NULL; - - if (controller < 0) - return -1; - - if (virCgroupPathOfController(cgroup, controller, "", &path) < 0) - return -1; - - if (stat(path, &st) < 0) { - virReportSystemError(errno, _("failed to get stat for '%s'"), path); - return -1; - } - - return st.st_ino; -} -- 2.47.2