diff options
Diffstat (limited to 'api/src/glfs.c')
-rw-r--r-- | api/src/glfs.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/api/src/glfs.c b/api/src/glfs.c index db3ea10bb84..72a2c3724a1 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -522,7 +522,7 @@ GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0); /* * * Used to free the arguments allocated by glfs_set_volfile_server() */ -void +static void glfs_free_volfile_servers (cmd_args_t *cmd_args) { server_cmdline_t *server = NULL; @@ -542,6 +542,25 @@ out: return; } +static void +glfs_free_xlator_options (cmd_args_t *cmd_args) +{ + xlator_cmdline_option_t *xo = NULL; + xlator_cmdline_option_t *tmp_xo = NULL; + + if (!&(cmd_args->xlator_options)) + return; + + list_for_each_entry_safe (xo, tmp_xo, &cmd_args->xlator_options, + cmd_args) { + list_del_init (&xo->cmd_args); + GF_FREE (xo->volume); + GF_FREE (xo->key); + GF_FREE (xo->value); + GF_FREE (xo); + } +} + int pub_glfs_setfsuid (uid_t fsuid) { @@ -1092,6 +1111,8 @@ glusterfs_ctx_destroy (glusterfs_ctx_t *ctx) if (ctx->cmd_args.curr_server) glfs_free_volfile_servers (&ctx->cmd_args); + glfs_free_xlator_options (&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. |