diff options
Diffstat (limited to 'api/src')
-rw-r--r-- | api/src/glfs.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/api/src/glfs.c b/api/src/glfs.c index d21cb8b334f..babaf20cee3 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -1230,8 +1230,6 @@ pub_glfs_fini(struct glfs *fs) if (ctx->mgmt) { rpc_clnt_disable(ctx->mgmt); - rpc_clnt_unref(ctx->mgmt); - ctx->mgmt = NULL; } call_pool = fs->ctx->pool; @@ -1349,6 +1347,13 @@ pub_glfs_fini(struct glfs *fs) ret = -1; } + /* Avoid dispatching events to mgmt after freed, + * unreference mgmt after the event_dispatch_destroy */ + if (ctx->mgmt) { + rpc_clnt_unref(ctx->mgmt); + ctx->mgmt = NULL; + } + /* log infra has to be brought down before destroying * timer registry, as logging uses timer infra */ |