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