diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-volgen.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 50beb23f7..1bc0db6ce 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -3704,6 +3704,39 @@ glusterd_delete_volfile (glusterd_volinfo_t *volinfo, } int +glusterd_delete_snap_volfile (glusterd_volinfo_t *volinfo, + glusterd_volinfo_t *snap_volinfo, + glusterd_brickinfo_t *brickinfo) +{ + int ret = 0; + char filename[PATH_MAX] = {0,}; + char brick[PATH_MAX] = {0, }; + char path[PATH_MAX] = {0, }; + glusterd_conf_t *priv = NULL; + + GF_ASSERT (volinfo); + GF_ASSERT (brickinfo); + GF_ASSERT (snap_volinfo); + + priv = THIS->private; + GF_ASSERT (priv); + + GLUSTERD_REMOVE_SLASH_FROM_PATH (brickinfo->path, brick); + GLUSTERD_GET_SNAP_DIR (path, volinfo, snap_volinfo->volname, priv); + + snprintf (filename, PATH_MAX, "%s/%s.%s.%s.vol", + path, snap_volinfo->volname, + brickinfo->hostname, + brick); + + ret = unlink (filename); + if (ret) + gf_log ("glusterd", GF_LOG_ERROR, "failed to delete file: %s, " + "reason: %s", filename, strerror (errno)); + return ret; +} + +int validate_shdopts (glusterd_volinfo_t *volinfo, dict_t *val_dict, char **op_errstr) |