On Mon, Jul 30, 2018 at 01:16:10PM -0500, Eric Blake wrote:
On 07/30/2018 01:04 PM, Nir Soffer wrote:
On RHEL 7.5 we need to include <linux/falloc.h> for FALLOC_FL_* macros.
Rather, on any Linux system that pre-dates glibc 2.18, where the flags were finally supported directly in <fcntl.h>
Without the macros, fallocate is never used and we fall back to manual zeroing.
+++ b/plugins/file/file.c @@ -42,6 +42,10 @@ #include <sys/stat.h> #include <errno.h> +#if defined(__linux__) +#include <linux/falloc.h> /* For FALLOC_FL_* on RHEL, glibc < 2.18 */
Doesn't mention which version of RHEL, nor the fact that non-RHEL systems may also be impacted (it is the glibc version that matters here, rather than the distro).
+#endif +
ACK.
Perhaps could be made tighter, with a less ambiguous comment, as:
#if defined(__linux__) && !defined(FALLOC_FL_PUNCH_HOLE) # include <linux/falloc.h> /* For FALLOC_FL_*, on glibc < 2.18 */ #endif
but let's see if Rich has any preference between the two.
Your version is better. Upstream hat on we don't care about the weirdness of those enterprise distros :-) Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW