From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54065) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuJvW-0005vS-3y for qemu-devel@nongnu.org; Thu, 05 Nov 2015 07:46:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZuJvR-00039V-U2 for qemu-devel@nongnu.org; Thu, 05 Nov 2015 07:46:02 -0500 Received: from mx4-phx2.redhat.com ([209.132.183.25]:57094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuJvR-00039O-NE for qemu-devel@nongnu.org; Thu, 05 Nov 2015 07:45:57 -0500 Date: Thu, 5 Nov 2015 07:45:50 -0500 (EST) From: Prasanna Kumar Kalever Message-ID: <1677110309.4230186.1446727550535.JavaMail.zimbra@redhat.com> In-Reply-To: <1446727026-18094-2-git-send-email-prasanna.kalever@redhat.com> References: <1446727026-18094-1-git-send-email-prasanna.kalever@redhat.com> <1446727026-18094-2-git-send-email-prasanna.kalever@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/3] block/gluster: add support for multiple gluster servers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, pkrempa@redhat.com, stefanha@gmail.com, deepakcs@redhat.com, bharata@linux.vnet.ibm.com, rtalur@redhat.com On Thursday, November 5, 2015 6:07:06 PM, Prasanna Kumar Kalever wrote: > This patch adds a way to specify multiple volfile servers to the gluster > block backend of QEMU with tcp|rdma transport types and their port numbers. > > Problem: > > Currently VM Image on gluster volume is specified like this: [...] > static void qemu_gluster_complete_aio(void *opaque) > { > GlusterAIOCB *acb = (GlusterAIOCB *)opaque; > @@ -309,13 +641,13 @@ static void qemu_gluster_parse_flags(int bdrv_flags, > int *open_flags) > } > } > > -static int qemu_gluster_open(BlockDriverState *bs, QDict *options, > +static int qemu_gluster_open(BlockDriverState *bs, QDict *options, > int bdrv_flags, Error **errp) > { > BDRVGlusterState *s = bs->opaque; > int open_flags = 0; > int ret = 0; > - GlusterConf *gconf = g_new0(GlusterConf, 1); > + BlockdevOptionsGluster *gconf = NULL; > QemuOpts *opts; > Error *local_err = NULL; > const char *filename; > @@ -329,8 +661,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict > *options, > } > > filename = qemu_opt_get(opts, "filename"); > - > - s->glfs = qemu_gluster_init(gconf, filename, errp); > + s->glfs = qemu_gluster_init(&gconf, filename, options, errp); > if (!s->glfs) { > ret = -errno; > goto out; > @@ -345,7 +676,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict > *options, > > out: > qemu_opts_del(opts); > - qemu_gluster_gconf_free(gconf); > + qapi_free_BlockdevOptionsGluster(gconf); Can some one help me please ? This leads to crash in the second iteration i.e. while freeing "gconf->servers->next->value" -prasanna > if (!ret) { > return ret; > } [...] > -- > 2.1.0 > >