Signed-off-by: Sage Weil <sage@redhat.com>
void encode(bufferlist& bl) const {
if (dirty) {
+ // manage blob_bl memory carefully
+ blob_bl.clear();
+ blob_bl.reserve(blob.estimate_encoded_size());
::encode(blob, blob_bl);
dirty = false;
} else {
bluestore_blob_t(uint32_t f = 0) : flags(f) {}
+ int estimate_encoded_size() const {
+ // conservative upper bound... fixme
+ return csum_data.length() + extents.size() * 16 + 48;
+ }
+
void encode(bufferlist& bl) const;
void decode(bufferlist::iterator& p);
void dump(Formatter *f) const;