On Thu, Jan 23, 2020 at 11:43:19AM +0000, Daniel P. Berrangé wrote:
The O_DIRECT flag is not available on platforms, so we
must avoid it once we remove GNULIB.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/util/virfile.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index d0e0062aa7..617d5d7a48 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -178,7 +178,11 @@ virFileDirectFdFlag(void)
{
/* XXX For now, Linux posix_fadvise is not powerful enough to
* avoid O_DIRECT. */
+#ifdef O_DIRECT
return O_DIRECT ? O_DIRECT : -1;
+#else
+ return -1;
+#endif
}
This patch is broken, as it misses iohelper. The real
fix needs to be to follow what gnulib does
diff --git a/src/util/iohelper.c b/src/util/iohelper.c
index d864bbeaed..618bfb1d3d 100644
--- a/src/util/iohelper.c
+++ b/src/util/iohelper.c
@@ -39,6 +39,10 @@
#define VIR_FROM_THIS VIR_FROM_STORAGE
+#ifndef O_DIRECT
+# define O_DIRECT 0
+#endif
+
static int
runIO(const char *path, int fd, int oflags)
{
diff --git a/src/util/virfile.c b/src/util/virfile.c
index d0e0062aa7..efa59f2b13 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -95,6 +95,10 @@
VIR_LOG_INIT("util.file");
+#ifndef O_DIRECT
+# define O_DIRECT 0
+#endif
+
int virFileClose(int *fdptr, virFileCloseFlags flags)
{
int saved_errno = 0;
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|