diff options
author | Avra Sengupta <asengupt@redhat.com> | 2014-04-22 10:27:23 +0000 |
---|---|---|
committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2014-05-06 00:25:11 -0700 |
commit | 86fccad56d2ffd6c65e1571ff87dbf625b8ce55e (patch) | |
tree | f78322f5b0bad5457e34935b336090fe3eb5d60b /glusterfsd | |
parent | f846e54b8844decbc8bd73840e7d35b2dcaed2e0 (diff) |
glusterd/snashot: Perform missed snap creates
When a brick is started, and the glusterfsd process requests
for volfile, the brick_name is sent in the req dict. In
glusterd, after fetching the spec the brick_name is looked
up in the missed_snap_list, and any missing snap creates on
the same brick are performed. After this, the glusterd
responds back with the specfile.
Also collate brick data from the node's hosting the bricks
during restore. In case the data is absent, the local node's
data is used. This is needed to ensure that, during a restore
we collect the information created when a missed snap create
is performed.
Change-Id: I47cefdeba96f2702be810965734cf0fac61d3d2d
BUG: 1061685
Signed-off-by: Avra Sengupta <asengupt@redhat.com>
Reviewed-on: http://review.gluster.org/7551
Reviewed-by: Santosh Pradhan <spradhan@redhat.com>
Reviewed-by: Rajesh Joseph <rjoseph@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'glusterfsd')
-rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index 0febaf20cbd..bcc965696de 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -1643,6 +1643,16 @@ glusterfs_volfile_fetch (glusterfs_ctx_t *ctx) goto out; } + if (cmd_args->brick_name) { + ret = dict_set_dynstr_with_alloc (dict, "brick_name", + cmd_args->brick_name); + if (ret) { + gf_log (THIS->name, GF_LOG_ERROR, + "Failed to set brick_name in request dict"); + goto out; + } + } + ret = dict_allocate_and_serialize (dict, &req.xdata.xdata_val, &req.xdata.xdata_len); if (ret < 0) { |