From: Igor Fedotov Date: Tue, 28 Jun 2016 13:09:46 +0000 (+0300) Subject: os/bluestore: implements "fast-track" to insert records into bluestore_extent_ref_map_t X-Git-Tag: ses5-milestone5~268^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=490071795a180e7f039ed16b92bb8397ef50821d;p=ceph.git os/bluestore: implements "fast-track" to insert records into bluestore_extent_ref_map_t Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 0948e937650f..5171ed35de5f 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -120,6 +120,14 @@ struct bluestore_extent_ref_map_t { return ref_map.empty(); } + //raw reference insertion that assumes no conflicts/interference with the existing references + void fill(uint32_t offset, uint32_t len, int refs = 1) { + auto p = ref_map.insert( + map::value_type(offset, + record_t(len, refs))).first; + _maybe_merge_left(p); + } + void get(uint32_t offset, uint32_t len); void put(uint32_t offset, uint32_t len, vector *release);