Commit e014dbe7 authored by Prasanna Kumar Kalever's avatar Prasanna Kumar Kalever Committed by Kevin Wolf
Browse files

gluster: Handle changed glfs_ftruncate signature



New versions of Glusters libgfapi.so have an updated glfs_ftruncate()
function that returns additional 'struct stat' structures to enable
advanced caching of attributes. This is useful for file servers, not so
much for QEMU. Nevertheless, the API has changed and needs to be
adopted.

Signed-off-by: default avatarPrasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: default avatarNiels de Vos <ndevos@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent eda1df03
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@
#include "qemu/option.h"
#include "qemu/cutils.h"

#ifdef CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT
# define glfs_ftruncate(fd, offset) glfs_ftruncate(fd, offset, NULL, NULL)
#endif

#define GLUSTER_OPT_FILENAME        "filename"
#define GLUSTER_OPT_VOLUME          "volume"
#define GLUSTER_OPT_PATH            "path"
+18 −0
Original line number Diff line number Diff line
@@ -456,6 +456,7 @@ glusterfs_xlator_opt="no"
glusterfs_discard="no"
glusterfs_fallocate="no"
glusterfs_zerofill="no"
glusterfs_ftruncate_has_stat="no"
gtk=""
gtk_gl="no"
tls_priority="NORMAL"
@@ -4091,6 +4092,19 @@ if test "$glusterfs" != "no" ; then
      glusterfs_fallocate="yes"
      glusterfs_zerofill="yes"
    fi
    cat > $TMPC << EOF
#include <glusterfs/api/glfs.h>

int
main(void)
{
	/* new glfs_ftruncate() passes two additional args */
	return glfs_ftruncate(NULL, 0, NULL, NULL);
}
EOF
    if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
      glusterfs_ftruncate_has_stat="yes"
    fi
  else
    if test "$glusterfs" = "yes" ; then
      feature_not_found "GlusterFS backend support" \
@@ -6976,6 +6990,10 @@ if test "$glusterfs_zerofill" = "yes" ; then
  echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
fi

if test "$glusterfs_ftruncate_has_stat" = "yes" ; then
  echo "CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT=y" >> $config_host_mak
fi

if test "$libssh2" = "yes" ; then
  echo "CONFIG_LIBSSH2=m" >> $config_host_mak
  echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak