[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] block/gluster: defend on legacy ftruncate api use
From: |
Prasanna Kumar Kalever |
Subject: |
[Qemu-devel] [PATCH] block/gluster: defend on legacy ftruncate api use |
Date: |
Thu, 12 Apr 2018 16:46:14 +0530 |
Signed-off-by: Prasanna Kumar Kalever <address@hidden>
---
block/gluster.c | 15 +++++++++++++--
configure | 8 ++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/block/gluster.c b/block/gluster.c
index 4adc1a875b..2474580ad6 100644
--- a/block/gluster.c
+++ b/block/gluster.c
@@ -996,6 +996,7 @@ static int qemu_gluster_do_truncate(struct glfs_fd *fd,
int64_t offset,
PreallocMode prealloc, Error **errp)
{
int64_t current_length;
+ int ret;
current_length = glfs_lseek(fd, 0, SEEK_END);
if (current_length < 0) {
@@ -1023,7 +1024,12 @@ static int qemu_gluster_do_truncate(struct glfs_fd *fd,
int64_t offset,
#endif /* CONFIG_GLUSTERFS_FALLOCATE */
#ifdef CONFIG_GLUSTERFS_ZEROFILL
case PREALLOC_MODE_FULL:
- if (glfs_ftruncate(fd, offset)) {
+#ifdef CONFIG_GLUSTERFS_LEGACY_FTRUNCATE
+ ret = glfs_ftruncate(fd, offset);
+#else
+ ret = glfs_ftruncate(fd, offset, NULL, NULL);
+#endif
+ if (ret) {
error_setg_errno(errp, errno, "Could not resize file");
return -errno;
}
@@ -1034,7 +1040,12 @@ static int qemu_gluster_do_truncate(struct glfs_fd *fd,
int64_t offset,
break;
#endif /* CONFIG_GLUSTERFS_ZEROFILL */
case PREALLOC_MODE_OFF:
- if (glfs_ftruncate(fd, offset)) {
+#ifdef CONFIG_GLUSTERFS_LEGACY_FTRUNCATE
+ ret = glfs_ftruncate(fd, offset);
+#else
+ ret = glfs_ftruncate(fd, offset, NULL, NULL);
+#endif
+ if (ret) {
error_setg_errno(errp, errno, "Could not resize file");
return -errno;
}
diff --git a/configure b/configure
index 0a19b033bc..69827b0098 100755
--- a/configure
+++ b/configure
@@ -429,6 +429,7 @@ glusterfs_xlator_opt="no"
glusterfs_discard="no"
glusterfs_fallocate="no"
glusterfs_zerofill="no"
+glusterfs_legacy_ftruncate="no"
gtk=""
gtkabi=""
gtk_gl="no"
@@ -3856,6 +3857,9 @@ if test "$glusterfs" != "no" ; then
glusterfs_fallocate="yes"
glusterfs_zerofill="yes"
fi
+ if ! $pkg_config --atleast-version=7.4 glusterfs-api; then
+ glusterfs_legacy_ftruncate="yes"
+ fi
else
if test "$glusterfs" = "yes" ; then
feature_not_found "GlusterFS backend support" \
@@ -6502,6 +6506,10 @@ if test "$glusterfs_zerofill" = "yes" ; then
echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
fi
+if test "$glusterfs_legacy_ftruncate" = "yes" ; then
+ echo "CONFIG_GLUSTERFS_LEGACY_FTRUNCATE=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
--
2.14.3
- [Qemu-devel] [PATCH] block/gluster: defend on legacy ftruncate api use,
Prasanna Kumar Kalever <=