From: Sage Weil Date: Thu, 28 Sep 2017 12:14:37 +0000 (-0400) Subject: os/bluestore: put new attrs in correct mempool too X-Git-Tag: v13.0.1~764^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e7762ea1477e861ebc738aa0588a01c0da883d62;p=ceph.git os/bluestore: put new attrs in correct mempool too Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 0608ea600169a..4e7fc63dcdbd7 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -10712,10 +10712,14 @@ int BlueStore::_setattr(TransContext *txc, << " " << name << " (" << val.length() << " bytes)" << dendl; int r = 0; - if (val.is_partial()) - o->onode.attrs[name.c_str()] = bufferptr(val.c_str(), val.length()); - else - o->onode.attrs[name.c_str()] = val; + if (val.is_partial()) { + auto& b = o->onode.attrs[name.c_str()] = bufferptr(val.c_str(), + val.length()); + b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + } else { + auto& b = o->onode.attrs[name.c_str()] = val; + b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + } txc->write_onode(o); dout(10) << __func__ << " " << c->cid << " " << o->oid << " " << name << " (" << val.length() << " bytes)" @@ -10734,11 +10738,14 @@ int BlueStore::_setattrs(TransContext *txc, int r = 0; for (map::const_iterator p = aset.begin(); p != aset.end(); ++p) { - if (p->second.is_partial()) - o->onode.attrs[p->first.c_str()] = + if (p->second.is_partial()) { + auto& b = o->onode.attrs[p->first.c_str()] = bufferptr(p->second.c_str(), p->second.length()); - else - o->onode.attrs[p->first.c_str()] = p->second; + b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + } else { + auto& b = o->onode.attrs[p->first.c_str()] = p->second; + b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + } } txc->write_onode(o); dout(10) << __func__ << " " << c->cid << " " << o->oid