diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-syncop.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-syncop.c | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-syncop.c b/xlators/mgmt/glusterd/src/glusterd-syncop.c index 0bf03358ffd..f45b1eacea6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-syncop.c +++ b/xlators/mgmt/glusterd/src/glusterd-syncop.c @@ -1383,6 +1383,8 @@ gd_commit_op_phase(glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,      char *errstr = NULL;      struct syncargs args = {0};      int type = GF_QUOTA_OPTION_TYPE_NONE; +    uint32_t cmd = 0; +    gf_boolean_t origin_glusterd = _gf_false;      this = THIS;      GF_ASSERT(this); @@ -1440,6 +1442,20 @@ commit_done:      gd_syncargs_init(&args, op_ctx);      synctask_barrier_init((&args));      peer_cnt = 0; +    origin_glusterd = is_origin_glusterd(req_dict); + +    if (op == GD_OP_STATUS_VOLUME) { +        ret = dict_get_uint32(req_dict, "cmd", &cmd); +        if (ret) +            goto out; + +        if (origin_glusterd) { +            if ((cmd & GF_CLI_STATUS_ALL)) { +                ret = 0; +                goto out; +            } +        } +    }      rcu_read_lock();      cds_list_for_each_entry_rcu(peerinfo, &conf->peers, uuid_list)  | 
