From 4fcf5dd370e8cfac75fadbf709a785053eb26ad9 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Mon, 22 Jun 2015 11:15:58 -0700 Subject: [PATCH] tools: Don't export temporary objects until we have persistent-temp objects Signed-off-by: David Zafman --- src/tools/ceph_objectstore_tool.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 43f6b2224640f..67cce7fa908a0 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -699,7 +699,8 @@ int ObjectStoreTool::export_files(ObjectStore *store, coll_t coll) for (vector::iterator i = objects.begin(); i != objects.end(); ++i) { - if (i->is_pgmeta()) { + assert(!i->hobj.is_meta()); + if (i->is_pgmeta() || i->hobj.is_temp()) { continue; } r = export_file(store, coll, *i); @@ -872,6 +873,10 @@ int ObjectStoreTool::get_object(ObjectStore *store, coll_t coll, coll.is_pg_prefix(&pg); SnapMapper mapper(&driver, 0, 0, 0, pg.shard); + if (ob.hoid.hobj.is_temp()) { + cerr << "ERROR: Export contains temporary object '" << ob.hoid << "'" << std::endl; + return -EFAULT; + } assert(g_ceph_context); if (ob.hoid.hobj.nspace != g_ceph_context->_conf->osd_hit_set_namespace) { object_t oid = ob.hoid.hobj.oid; -- 2.39.5