diff options
-rw-r--r-- | xlators/features/snapview-server/src/snapview-server-mgmt.c | 32 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 1 |
2 files changed, 33 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) { diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c index 724dcb792ae..9e2a75f110f 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c @@ -1704,6 +1704,7 @@ glusterd_import_friend_snap (dict_t *peer_data, int32_t snap_count, "object %s", peer_snap_name); goto out; } + glusterd_fetchsnap_notify (this); out: if (ret) |