diff options
Diffstat (limited to 'api')
| -rw-r--r-- | api/src/glfs.c | 25 | 
1 files changed, 25 insertions, 0 deletions
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.  | 
