]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix invalid omap name conversion when upgrading to per-pg.
authorIgor Fedotov <ifed@suse.com>
Wed, 27 Oct 2021 10:59:34 +0000 (13:59 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Wed, 10 Nov 2021 17:18:51 +0000 (20:18 +0300)
Fixes: https://tracker.ceph.com/issues/53062
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit cbc97018d883333f81ab9a3cfa99d2f68a9874cd)
(cherry picked from commit dc0a7e49434f76d97016934feed9a8ec806d1e42)

src/os/bluestore/BlueStore.cc

index caed92a0f590aa9a5cc0a28304cdc1cf41cf48b2..eb0babf204179d4bb8d4c1feeadae3b5c053a305 100644 (file)
@@ -8217,6 +8217,7 @@ void BlueStore::_fsck_check_object_omap(FSCKDepth depth,
       string final_key;
       Onode::calc_omap_key(new_flags, o.get(), string(), &final_key);
       size_t base_key_len = final_key.size();
+      it->next();
       while (it->valid() && it->key() < tail) {
        string user_key;
        o->decode_omap_key(it->key(), &user_key);
@@ -8224,7 +8225,7 @@ void BlueStore::_fsck_check_object_omap(FSCKDepth depth,
          << " -> " << user_key << dendl;
 
        final_key.resize(base_key_len);
-       final_key += it->key();
+       final_key += user_key;
        auto v = it->value();
        txn->set(new_omap_prefix, final_key, v);
        txn_cost += final_key.length() + v.length();