]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: behave if we *do* set PGMETA and PERPOOL flags
authorSage Weil <sage@redhat.com>
Mon, 5 Aug 2019 17:53:29 +0000 (12:53 -0500)
committerSage Weil <sage@redhat.com>
Thu, 8 Aug 2019 22:26:24 +0000 (17:26 -0500)
pgmeta trumps perpool.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 97fed8c7f9081ed1ce94c972bc6e26143e842bc3..5c9797c7ecd084e900f625d98e47329e7ff63342 100644 (file)
@@ -3287,7 +3287,7 @@ const string& BlueStore::Onode::get_omap_prefix()
 
 void BlueStore::Onode::get_omap_header(string *out)
 {
-  if (onode.is_perpool_omap()) {
+  if (onode.is_perpool_omap() && !onode.is_pgmeta_omap()) {
     _key_encode_u64(oid.hobj.pool, out);
   }
   _key_encode_u64(onode.nid, out);
@@ -3296,7 +3296,7 @@ void BlueStore::Onode::get_omap_header(string *out)
 
 void BlueStore::Onode::get_omap_key(const string& key, string *out)
 {
-  if (onode.is_perpool_omap()) {
+  if (onode.is_perpool_omap() && !onode.is_pgmeta_omap()) {
     _key_encode_u64(oid.hobj.pool, out);
   }
   _key_encode_u64(onode.nid, out);
@@ -3306,7 +3306,7 @@ void BlueStore::Onode::get_omap_key(const string& key, string *out)
 
 void BlueStore::Onode::rewrite_omap_key(const string& old, string *out)
 {
-  if (onode.is_perpool_omap()) {
+  if (onode.is_perpool_omap() && !onode.is_pgmeta_omap()) {
     _key_encode_u64(oid.hobj.pool, out);
   }
   _key_encode_u64(onode.nid, out);
@@ -3315,7 +3315,7 @@ void BlueStore::Onode::rewrite_omap_key(const string& old, string *out)
 
 void BlueStore::Onode::get_omap_tail(string *out)
 {
-  if (onode.is_perpool_omap()) {
+  if (onode.is_perpool_omap() && !onode.is_pgmeta_omap()) {
     _key_encode_u64(oid.hobj.pool, out);
   }
   _key_encode_u64(onode.nid, out);
@@ -3324,7 +3324,7 @@ void BlueStore::Onode::get_omap_tail(string *out)
 
 void BlueStore::Onode::decode_omap_key(const string& key, string *user_key)
 {
-  if (onode.is_perpool_omap()) {
+  if (onode.is_perpool_omap() && !onode.is_pgmeta_omap()) {
     *user_key = key.substr(sizeof(uint64_t)*2 + 1);
   } else {
     *user_key = key.substr(sizeof(uint64_t) + 1);