[libvirt] [PATCH 1/3] virfile: Provide stub for virFileInData

Michal Privoznik mprivozn at redhat.com
Thu May 18 13:46:44 UTC 2017


Some older systems (such as RHEL6) lack SEEK_HOLE and SEEK_DATA
which virFileInData relies on. Provide a stub for these systems.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 configure.ac       |  5 +++++
 src/util/virfile.c | 15 +++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/configure.ac b/configure.ac
index f20b9ea4d..2e6051354 100644
--- a/configure.ac
+++ b/configure.ac
@@ -352,6 +352,11 @@ AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO,
   [], [], [[#include <linux/ethtool.h>
   ]])
 
+AC_CHECK_DECLS([SEEK_HOLE], [], [],
+               [#include <sys/types.h>
+                #include <unistd.h>])
+
+
 dnl Our only use of libtasn1.h is in the testsuite, and can be skipped
 dnl if the header is not present.  Assume -ltasn1 is present if the
 dnl header could be found.
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 2f4bc42b6..b7645fbfc 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -3798,6 +3798,7 @@ virFileComparePaths(const char *p1, const char *p2)
 }
 
 
+#if HAVE_DECL_SEEK_HOLE
 /**
  * virFileInData:
  * @fd: file to check
@@ -3904,6 +3905,20 @@ virFileInData(int fd,
     return ret;
 }
 
+#else /* !HAVE_DECL_SEEK_HOLE */
+
+int
+virFileInData(int fd ATTRIBUTE_UNUSED,
+              int *inData ATTRIBUTE_UNUSED,
+              long long *length ATTRIBUTE_UNUSED)
+{
+    virReportSystemError(ENOSYS, "%s",
+                         _("sparse files not supported"));
+    return -1;
+}
+
+#endif /* !HAVE_DECL_SEEK_HOLE */
+
 
 /**
  * virFileReadValueInt:
-- 
2.13.0




More information about the libvir-list mailing list