From: Igor Fedotov Date: Wed, 27 Oct 2021 10:59:34 +0000 (+0300) Subject: os/bluestore: fix invalid omap name conversion when upgrading to per-pg. X-Git-Tag: v15.2.16~71^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7af81181607af71f40f3af50651efbb5d2491379;p=ceph.git os/bluestore: fix invalid omap name conversion when upgrading to per-pg. Fixes: https://tracker.ceph.com/issues/53062 Signed-off-by: Igor Fedotov (cherry picked from commit cbc97018d883333f81ab9a3cfa99d2f68a9874cd) (cherry picked from commit dc0a7e49434f76d97016934feed9a8ec806d1e42) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index caed92a0f59..eb0babf2041 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -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();