102 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 1788135e55dd9e68e54ba32582702df09819a8fe Mon Sep 17 00:00:00 2001
 | |
| From: Stefano Garzarella <sgarzare@redhat.com>
 | |
| Date: Tue, 16 Jul 2019 08:13:10 +0100
 | |
| Subject: [PATCH 16/39] block/gluster: limit the transfer size to 512 MiB
 | |
| 
 | |
| RH-Author: Stefano Garzarella <sgarzare@redhat.com>
 | |
| Message-id: <20190716081310.29528-2-sgarzare@redhat.com>
 | |
| Patchwork-id: 89533
 | |
| O-Subject: [RHEL-8.1.0 qemu-kvm PATCH 1/1] block/gluster: limit the transfer size to 512 MiB
 | |
| Bugzilla: 1728657
 | |
| RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
 | |
| RH-Acked-by: Max Reitz <mreitz@redhat.com>
 | |
| 
 | |
| Several versions of GlusterFS (3.12? -> 6.0.1) fail when the
 | |
| transfer size is greater or equal to 1024 MiB, so we are
 | |
| limiting the transfer size to 512 MiB to avoid this rare issue.
 | |
| 
 | |
| Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1691320
 | |
| Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
 | |
| Reviewed-by: Niels de Vos <ndevos@redhat.com>
 | |
| Signed-off-by: Kevin Wolf <kwolf@redhat.com>
 | |
| (cherry picked from commit de23e72bb7515888fdea2a58c58a2e02370123bd)
 | |
| Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
 | |
| Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
 | |
| ---
 | |
|  block/gluster.c | 16 ++++++++++++++++
 | |
|  1 file changed, 16 insertions(+)
 | |
| 
 | |
| diff --git a/block/gluster.c b/block/gluster.c
 | |
| index a6ac2b1..9b29d96 100644
 | |
| --- a/block/gluster.c
 | |
| +++ b/block/gluster.c
 | |
| @@ -9,6 +9,7 @@
 | |
|   */
 | |
|  
 | |
|  #include "qemu/osdep.h"
 | |
| +#include "qemu/units.h"
 | |
|  #include <glusterfs/api/glfs.h>
 | |
|  #include "block/block_int.h"
 | |
|  #include "block/qdict.h"
 | |
| @@ -41,6 +42,12 @@
 | |
|  #define GLUSTER_DEBUG_MAX           9
 | |
|  #define GLUSTER_OPT_LOGFILE         "logfile"
 | |
|  #define GLUSTER_LOGFILE_DEFAULT     "-" /* handled in libgfapi as /dev/stderr */
 | |
| +/*
 | |
| + * Several versions of GlusterFS (3.12? -> 6.0.1) fail when the transfer size
 | |
| + * is greater or equal to 1024 MiB, so we are limiting the transfer size to 512
 | |
| + * MiB to avoid this rare issue.
 | |
| + */
 | |
| +#define GLUSTER_MAX_TRANSFER        (512 * MiB)
 | |
|  
 | |
|  #define GERR_INDEX_HINT "hint: check in 'server' array index '%d'\n"
 | |
|  
 | |
| @@ -887,6 +894,11 @@ out:
 | |
|      return ret;
 | |
|  }
 | |
|  
 | |
| +static void qemu_gluster_refresh_limits(BlockDriverState *bs, Error **errp)
 | |
| +{
 | |
| +    bs->bl.max_transfer = GLUSTER_MAX_TRANSFER;
 | |
| +}
 | |
| +
 | |
|  static int qemu_gluster_reopen_prepare(BDRVReopenState *state,
 | |
|                                         BlockReopenQueue *queue, Error **errp)
 | |
|  {
 | |
| @@ -1527,6 +1539,7 @@ static BlockDriver bdrv_gluster = {
 | |
|      .bdrv_co_pwrite_zeroes        = qemu_gluster_co_pwrite_zeroes,
 | |
|  #endif
 | |
|      .bdrv_co_block_status         = qemu_gluster_co_block_status,
 | |
| +    .bdrv_refresh_limits          = qemu_gluster_refresh_limits,
 | |
|      .create_opts                  = &qemu_gluster_create_opts,
 | |
|  };
 | |
|  
 | |
| @@ -1556,6 +1569,7 @@ static BlockDriver bdrv_gluster_tcp = {
 | |
|      .bdrv_co_pwrite_zeroes        = qemu_gluster_co_pwrite_zeroes,
 | |
|  #endif
 | |
|      .bdrv_co_block_status         = qemu_gluster_co_block_status,
 | |
| +    .bdrv_refresh_limits          = qemu_gluster_refresh_limits,
 | |
|      .create_opts                  = &qemu_gluster_create_opts,
 | |
|  };
 | |
|  
 | |
| @@ -1585,6 +1599,7 @@ static BlockDriver bdrv_gluster_unix = {
 | |
|      .bdrv_co_pwrite_zeroes        = qemu_gluster_co_pwrite_zeroes,
 | |
|  #endif
 | |
|      .bdrv_co_block_status         = qemu_gluster_co_block_status,
 | |
| +    .bdrv_refresh_limits          = qemu_gluster_refresh_limits,
 | |
|      .create_opts                  = &qemu_gluster_create_opts,
 | |
|  };
 | |
|  
 | |
| @@ -1620,6 +1635,7 @@ static BlockDriver bdrv_gluster_rdma = {
 | |
|      .bdrv_co_pwrite_zeroes        = qemu_gluster_co_pwrite_zeroes,
 | |
|  #endif
 | |
|      .bdrv_co_block_status         = qemu_gluster_co_block_status,
 | |
| +    .bdrv_refresh_limits          = qemu_gluster_refresh_limits,
 | |
|      .create_opts                  = &qemu_gluster_create_opts,
 | |
|  };
 | |
|  
 | |
| -- 
 | |
| 1.8.3.1
 | |
| 
 |