Blob Blame History Raw
From 37704b589e9074b9727104c525c4dc6a0b6228fe Mon Sep 17 00:00:00 2001
From: Xiubo Li <xiubli@redhat.com>
Date: Mon, 11 Feb 2019 18:05:45 +0800
Subject: [PATCH 1/2] glfs: add gfapi version check

Signed-off-by: Xiubo Li <xiubli@redhat.com>
---
 CMakeLists.txt | 5 +++++
 glfs.c         | 8 ++++++++
 version.h.in   | 2 ++
 3 files changed, 15 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 64af0f3..bc8d2f2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -224,6 +224,11 @@ endif (with-rbd)
 if (with-glfs)
 	find_library(GFAPI gfapi)
 
+	pkg_check_modules(GFAPI760 glusterfs-api>=7.6)
+	if (GFAPI760_FOUND)
+		set(GFAPI_VERSION 760)
+	endif (GFAPI760_FOUND)
+
 	# Stuff for building the glfs handler
 	add_library(handler_glfs
 	  SHARED
diff --git a/glfs.c b/glfs.c
index 85f0f4b..610133f 100644
--- a/glfs.c
+++ b/glfs.c
@@ -26,6 +26,7 @@
 #include "libtcmu.h"
 #include "tcmur_device.h"
 #include "tcmur_cmd_handler.h"
+#include "version.h"
 
 #define ALLOWED_BSOFLAGS (O_DIRECT | O_RDWR | O_LARGEFILE)
 
@@ -566,7 +567,14 @@ static void tcmu_glfs_close(struct tcmu_device *dev)
 	free(gfsp);
 }
 
+#if GFAPI_VERSION < 760
 static void glfs_async_cbk(glfs_fd_t *fd, ssize_t ret, void *data)
+#else
+static void glfs_async_cbk(glfs_fd_t *fd, ssize_t ret,
+			   struct glfs_stat *prestat,
+			   struct glfs_stat *poststat,
+			   void *data)
+#endif
 {
 	glfs_cbk_cookie *cookie = data;
 	struct tcmu_device *dev = cookie->dev;
diff --git a/version.h.in b/version.h.in
index 96d8893..516a366 100644
--- a/version.h.in
+++ b/version.h.in
@@ -2,3 +2,5 @@
 #define TCMUR_VERSION "@VERSION@"
 
 #define DEFAULT_HANDLER_PATH "@tcmu-runner_HANDLER_PATH@"
+
+#define GFAPI_VERSION @GFAPI_VERSION@
-- 
2.14.3