diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 38 | 
1 files changed, 33 insertions, 5 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 59609971bd8..3681d4b9565 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -1482,6 +1482,18 @@ glusterd_add_volume_to_dict (glusterd_volinfo_t *volinfo,                  goto out;          memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "volume%d.replica_count", count); +        ret = dict_set_int32 (dict, key, volinfo->replica_count); +        if (ret) +                goto out; + +        memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "volume%d.dist_count", count); +        ret = dict_set_int32 (dict, key, volinfo->dist_leaf_count); +        if (ret) +                goto out; + +        memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "volume%d.ckusm", count);          ret = dict_set_int64 (dict, key, volinfo->cksum);          if (ret) @@ -1958,11 +1970,27 @@ glusterd_import_volinfo (dict_t *vols, int count,          memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "volume%d.stripe_count", count);          ret = dict_get_int32 (vols, key, &new_volinfo->stripe_count); -        if (!ret) { -                if (new_volinfo->stripe_count) -                        new_volinfo->replica_count = (new_volinfo->sub_count / -                                                      new_volinfo->stripe_count); -        } +        if (ret) +                gf_log (THIS->name, GF_LOG_INFO, +                        "peer is possibly old version"); + +        /* not having a 'replica_count' key is not a error +           (as peer may be of old version) */ +        memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "volume%d.replica_count", count); +        ret = dict_get_int32 (vols, key, &new_volinfo->replica_count); +        if (ret) +                gf_log (THIS->name, GF_LOG_INFO, +                        "peer is possibly old version"); + +        /* not having a 'dist_count' key is not a error +           (as peer may be of old version) */ +        memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "volume%d.dist_count", count); +        ret = dict_get_int32 (vols, key, &new_volinfo->dist_leaf_count); +        if (ret) +                gf_log (THIS->name, GF_LOG_INFO, +                        "peer is possibly old version");          memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "volume%d.ckusm", count);  | 
