]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #12634 from liewegas/wip-bluestore-shard-keys
authorSage Weil <sage@redhat.com>
Sat, 24 Dec 2016 04:53:08 +0000 (22:53 -0600)
committerGitHub <noreply@github.com>
Sat, 24 Dec 2016 04:53:08 +0000 (22:53 -0600)
os/bluestore: do not cache shard keys

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
Reviewed-by: Allen Samuels <allen.samuels@sandisk.com>
1  2 
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 46bca98e6955e92d99d74aa850864ca30ace3246,c27734c77dbca74d8a8dadd845178d3f15b44c05..e8ff586e6c5336bd3aabd47623703f2355501805
@@@ -1698,8 -1681,9 +1698,8 @@@ bool BlueStore::ExtentMap::update(KeyVa
          }
        assert(p->shard_info->offset == p->offset);
        p->shard_info->bytes = len;
 -      p->shard_info->extents = nn;
          
-         encoded_shards[pos].key = &p->key;
+         encoded_shards[pos].offset = p->offset;
          dirty_shards.push_back(encoded_shards[pos]);
        p->dirty = false;
        }
@@@ -8954,10 -8939,11 +8960,11 @@@ int BlueStore::_rename(TransContext *tx
  
    // rewrite shards
    oldo->extent_map.fault_range(db, 0, oldo->onode.size);
 -  get_object_key(new_oid, &new_okey);
 +  get_object_key(cct, new_oid, &new_okey);
    for (auto &s : oldo->extent_map.shards) {
-     txc->t->rmkey(PREFIX_OBJ, s.key);
-     get_extent_shard_key(new_okey, s.offset, &s.key);
+     string key;
+     get_extent_shard_key(oldo->key, s.offset, &key);
+     txc->t->rmkey(PREFIX_OBJ, key);
      s.dirty = true;
    }
  
Simple merge