From: Kefu Chai Date: Sat, 3 Aug 2019 12:25:39 +0000 (+0800) Subject: Merge pull request #29322 from rzarzynski/wip-objclass-cleanup X-Git-Tag: v15.1.0~1970 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=79b88eaf7cc3b5e09d6ab5495ee558a3c1a4f7d3;p=ceph-ci.git Merge pull request #29322 from rzarzynski/wip-objclass-cleanup objclass, osd: clean up the cls-host interface. Turn ClassHandler into singleton Reviewed-by: Neha Ojha Reviewed-by: Kefu Chai --- 79b88eaf7cc3b5e09d6ab5495ee558a3c1a4f7d3 diff --cc src/osd/OSD.cc index 1724ca213b7,e2f6325e52a..d67002909e9 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@@ -2866,20 -2864,9 +2862,17 @@@ int OSD::init( if (r < 0) goto out; } + if (!store->exists(service.meta_ch, OSD::make_purged_snaps_oid())) { + dout(10) << "init creating/touching purged_snaps object" << dendl; + ObjectStore::Transaction t; + t.touch(coll_t::meta(), OSD::make_purged_snaps_oid()); + r = store->queue_transaction(service.meta_ch, std::move(t)); + if (r < 0) + goto out; + } - class_handler = new ClassHandler(cct); - cls_initialize(class_handler); - if (cct->_conf->osd_open_classes_on_start) { - int r = class_handler->open_all_classes(); + int r = ClassHandler::get_instance().open_all_classes(); if (r) dout(1) << "warning: got an error loading one or more classes: " << cpp_strerror(r) << dendl; }