The LOOP_CTL_GET_FREE constant was introduced to Linux in commit 770fe30a46a12b6fb6b63fbe1737654d28e84844 Author: Kay Sievers <kay.sievers@xxxxxxxx> Date: Sun Jul 31 22:08:04 2011 +0200 loop: add management interface for on-demand device allocation This is old enough that all our supported platforms can be assumed to have this feature. As a plus point, this meson check is going to start failing with future GCC. It fails to set _GNU_SOURCE, thus 'unshare' is not defined by the header, and its relying on an implicit function decl. For added fun this whole meson check was semantically insane because LOOP_CTL_GET_FREE is not a valid arg to unshare(). Fixes https://fedoraproject.org/wiki/Toolchain/PortingToModernC Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> --- meson.build | 13 ------------- src/util/virfile.c | 5 ----- 2 files changed, 18 deletions(-) diff --git a/meson.build b/meson.build index f9834a36c2..22679db85d 100644 --- a/meson.build +++ b/meson.build @@ -1541,19 +1541,6 @@ void main(void) { elif get_option('driver_lxc').enabled() error('Required kernel features for LXC were not found') endif - - lxc_get_free_code = ''' -#include <sched.h> -#include <linux/loop.h> -#include <sys/epoll.h> - -void main(void) { - unshare(!(LOOP_CTL_GET_FREE)); -} - ''' - if cc.compiles(lxc_get_free_code) - conf.set('WITH_DECL_LOOP_CTL_GET_FREE', 1) - endif elif get_option('driver_lxc').enabled() error('linux and remote_driver are required for LXC') endif diff --git a/src/util/virfile.c b/src/util/virfile.c index ec40c04b1f..cef9f9979a 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -750,8 +750,6 @@ int virFileUpdatePerm(const char *path, #if defined(__linux__) && WITH_DECL_LO_FLAGS_AUTOCLEAR -# if WITH_DECL_LOOP_CTL_GET_FREE - /* virFileLoopDeviceOpenLoopCtl() returns -1 when a real failure has occurred * while in the process of allocating or opening the loop device. On success * we return 0 and modify the fd to the appropriate file descriptor. @@ -795,7 +793,6 @@ static int virFileLoopDeviceOpenLoopCtl(char **dev_name, int *fd) *dev_name = looppath; return 0; } -# endif /* WITH_DECL_LOOP_CTL_GET_FREE */ static int virFileLoopDeviceOpenSearch(char **dev_name) { @@ -864,7 +861,6 @@ static int virFileLoopDeviceOpen(char **dev_name) { int loop_fd = -1; -# if WITH_DECL_LOOP_CTL_GET_FREE if (virFileLoopDeviceOpenLoopCtl(dev_name, &loop_fd) < 0) return -1; @@ -872,7 +868,6 @@ static int virFileLoopDeviceOpen(char **dev_name) if (loop_fd >= 0) return loop_fd; -# endif /* WITH_DECL_LOOP_CTL_GET_FREE */ /* Without the loop control device we just use the old technique. */ loop_fd = virFileLoopDeviceOpenSearch(dev_name); -- 2.38.1