From: Samuel Just Date: Wed, 6 Mar 2013 22:55:28 +0000 (-0800) Subject: OSD: remove snap_mapper entries in RemoveWQ X-Git-Tag: v0.60~78^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=388616b073db23ec2dc0d21da83eb10143df6c46;p=ceph.git OSD: remove snap_mapper entries in RemoveWQ This is a somewhat ugly hack for now until we implement pg resurrection. Signed-off-by: Samuel Just --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f2cf321d997..c1619799fc2 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2528,6 +2528,11 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store, // ========================================= void OSD::RemoveWQ::_process(boost::tuple *item) { + OSDriver driver( + store, + coll_t(), + make_snapmapper_oid()); + SnapMapper mapper(&driver, 0, 0, 0); coll_t &coll = item->get<0>(); ObjectStore::Sequencer *osr = item->get<1>().get(); if (osr) @@ -2540,6 +2545,11 @@ void OSD::RemoveWQ::_process(boost::tuple::iterator i = olist.begin(); i != olist.end(); ++i, ++num) { + OSDriver::OSTransaction _t(driver.get_transaction(t)); + int r = mapper.remove_oid(*i, &_t); + if (r != 0 && r != -ENOENT) { + assert(0); + } t->remove(coll, *i); if (num >= g_conf->osd_target_transaction_size) { store->apply_transaction(osr, *t);