summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBasavanagowda Kanur <gowda@gluster.com>2009-07-07 07:58:05 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-07-07 16:51:53 -0700
commit80c769b54ed8e95ae3f51e19d2ef8c2e8ea5e44d (patch)
tree05f0936ea4f102726d2bd0c65d87bf0e46eac3e2
parent54f5ccceca2531f1a88cb4d0404f92edffa09cae (diff)
use fuse_reply_iov() in fuse_readv_cbk
changes come in two places. configure.ac - define HAVE_FUSE_REPLY_IOV if fuse_reply_iov is available in libfuse. mount/fuse - use fuse_reply_iov() in place of fuse_reply_vec(), if HAVE_FUSE_REPLY_IOV is defined. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
-rw-r--r--configure.ac9
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.c4
2 files changed, 13 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index e32ccedfdb2..1d72047ceab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -321,9 +321,18 @@ if test "x$enable_fuse_client" != "xno"; then
,
[HAVE_FUSE_VERSION_28="yes"],
[HAVE_FUSE_VERSION_28="no"])
+
+ AC_CHECK_LIB([fuse],
+ [fuse_reply_iov],
+ [HAVE_FUSE_REPLY_IOV="yes"],
+ [HAVE_FUSE_REPLY_IOV="no"])
+
fi
fi
+if test "x$HAVE_FUSE_REPLY_IOV" = "xyes"; then
+ AC_DEFINE(HAVE_FUSE_REPLY_IOV, 1, [found fuse_reply_iov])
+fi
if test "x$HAVE_LIBFUSE" = "xyes" -a "x$HAVE_FUSE_VERSION_28" = "xyes"; then
AC_DEFINE(HAVE_FUSE_VERSION_28, 1, [found fuse 2.8 version])
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index e938db72f52..210fbef2ac6 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -1466,7 +1466,11 @@ fuse_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
frame->root->unique,
op_ret, state->size, state->off, stbuf->st_size);
+#ifdef HAVE_FUSE_REPLY_IOV
+ fuse_reply_iov (req, vector, count);
+#else
fuse_reply_vec (req, vector, count);
+#endif
} else {
gf_log ("glusterfs-fuse", GF_LOG_WARNING,
"%"PRId64": READ => %d (%s)", frame->root->unique,