diff options
| author | Gaurav Kumar Garg <garg.gaurav52@gmail.com> | 2016-03-07 13:37:31 +0530 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2016-03-07 20:54:57 -0800 | 
| commit | 2d87a981657ee23d00c20813deddeb320e0afa8f (patch) | |
| tree | 65c1d707873e576028b502e5980f172325160d10 /xlators | |
| parent | 9c3fc4344a11f2b6d0a7906d45bc7a684d756839 (diff) | |
glusterd: avoid setting op-version lower than current cluster op-version
Currently glusterd allow setting a cluster op-version which is lower than
current cluster op-version. Though command is successful but it does not
set that lower op-version.
With this fix it will return error message "Required op-version
(requested op-version) should not be lower than current cluster
op-version (current cluster op-version)"
Change-Id: Ia5b61858ee22a5a26721ec12ab12ff48e1a40c82
BUG: 1315186
Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com>
Reviewed-on: http://review.gluster.org/13622
Smoke: Gluster Build System <jenkins@build.gluster.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index ea1400d7637..05b59950da6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -1138,8 +1138,22 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr)                                          "%s", errstr);                                  goto out;                          } -                        if (local_key_op_version > local_new_op_version) +                        if (local_key_op_version > local_new_op_version) {                                  local_new_op_version = local_key_op_version; +                        } else { +                                ret = -1; +                                snprintf (errstr, sizeof (errstr), +                                          "Required op-version (%d) should" +                                          " not be equal or lower than current" +                                          " cluster op-version (%d).", +                                          local_key_op_version, +                                          local_new_op_version); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        GD_MSG_VERSION_UNSUPPORTED, +                                        "%s", errstr); +                                goto out; +                        } +                          goto cont;                  }  | 
