From 09caa0c054c85f030c194362cbf3c687b4a56106 Mon Sep 17 00:00:00 2001 From: Jiffin Tony Thottan Date: Thu, 16 Jun 2016 15:55:47 +0530 Subject: libgfapi : free parameters allocated by glfs_set_volfile_server() This change introduce new function glfs_free_volfile_server which frees the variables allocated by glfs_set_volfile_server during glfs_fini() Change-Id: I8b1806c56e3431c33e4e8c17f9e8aa17a28a2f5c BUG: 1347249 Signed-off-by: Jiffin Tony Thottan Reviewed-on: http://review.gluster.org/14743 Smoke: Gluster Build System Reviewed-by: Niels de Vos NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System --- api/src/glfs.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'api') diff --git a/api/src/glfs.c b/api/src/glfs.c index 8db206de007..c7bf6cd483e 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -496,6 +496,28 @@ invalid_fs: GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0); +/* * + * Used to free the arguments allocated by glfs_set_volfile_server() + */ +void +glfs_free_volfile_servers (cmd_args_t *cmd_args) +{ + server_cmdline_t *server = NULL; + server_cmdline_t *tmp = NULL; + + GF_VALIDATE_OR_GOTO (THIS->name, cmd_args, out); + + list_for_each_entry_safe (server, tmp, &cmd_args->volfile_servers, + list) { + list_del_init (&server->list); + GF_FREE (server->volfile_server); + GF_FREE (server->transport); + GF_FREE (server); + } + cmd_args->curr_server = NULL; +out: + return; +} int pub_glfs_setfsuid (uid_t fsuid) @@ -1020,6 +1042,9 @@ glusterfs_ctx_destroy (glusterfs_ctx_t *ctx) if (ctx == NULL) return 0; + if (ctx->cmd_args.curr_server) + glfs_free_volfile_servers (&ctx->cmd_args); + /* For all the graphs, crawl through the xlator_t structs and free * all its members except for the mem_acct member, * as GF_FREE will be referencing it. -- cgit