From: zhuangzeqiang Date: Sat, 7 Oct 2017 08:52:07 +0000 (+0800) Subject: rbd: check value of config override when setting image-meta X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F9280%2Fhead;p=ceph.git rbd: check value of config override when setting image-meta Fixes: http://tracker.ceph.com/issues/15522 Signed-off-by: zhuangzeqiang --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 5276052c5190..b69046b90226 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -2627,6 +2627,15 @@ remove_mirroring_image: int metadata_set(ImageCtx *ictx, const string &key, const string &value) { CephContext *cct = ictx->cct; + string start = ictx->METADATA_CONF_PREFIX; + size_t conf_prefix_len = start.size(); + + if(key.size() > conf_prefix_len && !key.compare(0,conf_prefix_len,start)) { + string subkey = key.substr(conf_prefix_len, key.size()-conf_prefix_len); + int r = cct->_conf->set_val(subkey.c_str(), value); + if (r < 0) + return r; + } ldout(cct, 20) << "metadata_set " << ictx << " key=" << key << " value=" << value << dendl; int r = ictx->state->refresh_if_required();