The LOOP_CTL_GET_FREE constant was introduced to Linux in
commit 770fe30a46a12b6fb6b63fbe1737654d28e84844
Author: Kay Sievers <kay.sievers(a)vrfy.org>
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(a)redhat.com>
---
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