From dff5783b11ce99dc7d490d6af67e562284f06ec3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 14 Oct 2015 09:35:29 -0400 Subject: [PATCH] Revert "ceph-objectstore-tool: drop support for pre-pgmeta PGs" This reverts commit b297e6d2b206c0da733ae9d4ac5fb321f113ae5d. --- src/tools/ceph_objectstore_tool.cc | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 11de3bc32b4..e833bf9c7d9 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -470,6 +470,10 @@ int finish_remove_pgs(ObjectStore *store) return 0; } +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + int mark_pg_for_removal(ObjectStore *fs, spg_t pgid, ObjectStore::Transaction *t) { pg_info_t info(pgid); @@ -488,14 +492,29 @@ int mark_pg_for_removal(ObjectStore *fs, spg_t pgid, ObjectStore::Transaction *t cerr << __func__ << " error on read_info " << cpp_strerror(r) << std::endl; return r; } - assert(struct_v >= 8); - cout << "setting '_remove' omap key" << std::endl; - map values; - ::encode((char)1, values["_remove"]); - t->omap_setkeys(coll, pgmeta_oid, values); + if (struct_v < 8) { + // old xattr + cout << "setting legacy 'remove' xattr flag" << std::endl; + bufferlist one; + one.append('1'); + t->collection_setattr(coll, "remove", one); + cout << "remove " << coll_t::meta() << " " << log_oid << std::endl; + t->remove(coll_t::meta(), log_oid); + cout << "remove " << coll_t::meta() << " " << biginfo_oid << std::endl; + t->remove(coll_t::meta(), biginfo_oid); + } else { + // new omap key + cout << "setting '_remove' omap key" << std::endl; + map values; + ::encode((char)1, values["_remove"]); + t->omap_setkeys(coll, pgmeta_oid, values); + } return 0; } +#pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" + int initiate_new_remove_pg(ObjectStore *store, spg_t r_pgid, ObjectStore::Sequencer &osr) { -- 2.47.3