]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: return onode_key to caller
authorxie xingguo <xie.xingguo@zte.com.cn>
Fri, 9 Sep 2016 10:58:25 +0000 (18:58 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Sat, 10 Sep 2016 01:22:20 +0000 (09:22 +0800)
The get_key_extent_shard() method shall decompose extent_shard_key
into onode_key and offset, but currently we don't fill onode_key
and return it to caller.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/BlueStore.cc

index cf72e76dd5fe6760b7ad0b7b8312e421c18de10d..d868af96c38d69cd890b337eabc1be36db069fd4 100644 (file)
@@ -393,7 +393,9 @@ int get_key_extent_shard(const string& key, string *onode_key, uint32_t *offset)
 {
   assert(key.size() > sizeof(uint32_t) + 1);
   assert(key[key.size() - 1] == EXTENT_SHARD_KEY_SUFFIX);
-  const char *p = key.data() + key.size() - sizeof(uint32_t) - 1;
+  int okey_len = key.size() - sizeof(uint32_t) - 1;
+  *onode_key = key.substr(0, okey_len);
+  const char *p = key.data() + okey_len;
   p = _key_decode_u32(p, offset);
   return 0;
 }