diff options
| -rw-r--r-- | xlators/cluster/ec/src/ec-generic.c | 11 | 
1 files changed, 4 insertions, 7 deletions
diff --git a/xlators/cluster/ec/src/ec-generic.c b/xlators/cluster/ec/src/ec-generic.c index 3f5856e7a86..375e49e695c 100644 --- a/xlators/cluster/ec/src/ec-generic.c +++ b/xlators/cluster/ec/src/ec-generic.c @@ -906,14 +906,11 @@ void ec_lookup(call_frame_t * frame, xlator_t * this, uintptr_t target,          }      }      if (xdata != NULL) { -        fop->xdata = dict_ref(xdata); -        if (fop->xdata == NULL) { -            gf_msg (this->name, GF_LOG_ERROR, 0, -                    EC_MSG_DICT_REF_FAIL, "Failed to reference a " -                                             "dictionary."); - +        fop->xdata = dict_copy_with_ref (xdata, NULL); +        /* Do not log failures here as a memory problem would have already +         * been logged by the corresponding alloc functions */ +        if (fop->xdata == NULL)              goto out; -        }      }      error = 0;  | 
