diff options
Diffstat (limited to 'xlators/features/snapview-server')
-rw-r--r-- | xlators/features/snapview-server/src/snapview-server-mgmt.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/xlators/features/snapview-server/src/snapview-server-mgmt.c b/xlators/features/snapview-server/src/snapview-server-mgmt.c index fc2ff2ab10d..18c902dca1d 100644 --- a/xlators/features/snapview-server/src/snapview-server-mgmt.c +++ b/xlators/features/snapview-server/src/snapview-server-mgmt.c @@ -49,6 +49,31 @@ rpc_clnt_prog_t svs_clnt_handshake_prog = { .procnames = clnt_handshake_procs, }; +static int +svs_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, + void *data) +{ + xlator_t *this = NULL; + int ret = 0; + + this = mydata; + + switch (event) { + case RPC_CLNT_CONNECT: + ret = svs_get_snapshot_list (this); + if (ret) { + gf_log (this->name, GF_LOG_ERROR, + "Error in refreshing the snaplist " + "infrastructure"); + ret = -1; + } + break; + default: + break; + } + return ret; +} + int svs_mgmt_init (xlator_t *this) { @@ -86,6 +111,13 @@ svs_mgmt_init (xlator_t *this) goto out; } + ret = rpc_clnt_register_notify (priv->rpc, svs_rpc_notify, this); + if (ret) { + gf_log (this->name, GF_LOG_WARNING, + "failed to register notify function"); + goto out; + } + ret = rpcclnt_cbk_program_register (priv->rpc, &svs_cbk_prog, this); if (ret) { |