From 7af81181607af71f40f3af50651efbb5d2491379 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Wed, 27 Oct 2021 13:59:34 +0300 Subject: [PATCH] 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) --- src/os/bluestore/BlueStore.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index caed92a0f590a..eb0babf204179 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(); -- 2.39.5