summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/features/snapview-server/src/snapview-server-mgmt.c32
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c1
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)