From 2601cdec17c8ae0de2b4fd5a77081b3525992bb2 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Wed, 4 Mar 2020 15:32:43 +0100 Subject: [PATCH] tools/rados: Set locator key when exporting or importing a pool Fixes the following error when exporting a pool that contains objects with a locator key set: error getting xattr set [object name]: (2) No such file or directory error from export: (2) No such file or directory Fixes: https://tracker.ceph.com/issues/46824 Signed-off-by: Iain Buclaw (cherry picked from commit ecb2df9177f30213b3ff48e76e6fe31fcbb430a7) --- src/tools/rados/PoolDump.cc | 1 + src/tools/rados/RadosImport.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/src/tools/rados/PoolDump.cc b/src/tools/rados/PoolDump.cc index 747e9c62dbc41..9bfafa107dc65 100644 --- a/src/tools/rados/PoolDump.cc +++ b/src/tools/rados/PoolDump.cc @@ -70,6 +70,7 @@ int PoolDump::dump(IoCtx *io_ctx) const uint32_t op_size = 4096 * 1024; uint64_t offset = 0; io_ctx->set_namespace(i->get_nspace()); + io_ctx->locator_set_key(i->get_locator()); while (true) { bufferlist outdata; r = io_ctx->read(oid, outdata, op_size, offset); diff --git a/src/tools/rados/RadosImport.cc b/src/tools/rados/RadosImport.cc index afc04cf309e6a..0a901b7094596 100644 --- a/src/tools/rados/RadosImport.cc +++ b/src/tools/rados/RadosImport.cc @@ -194,6 +194,7 @@ int RadosImport::get_object_rados(librados::IoCtx &ioctx, bufferlist &bl, bool n } ioctx.set_namespace(ob.hoid.hobj.get_namespace()); + ioctx.locator_set_key(ob.hoid.hobj.get_key()); string msg("Write"); skipping = false; -- 2.39.5