From ddc111ee00b26039bdc47a79528c9d864edc101e Mon Sep 17 00:00:00 2001 From: David Zafman Date: Thu, 13 Dec 2018 13:58:53 -0800 Subject: [PATCH] rados, librados: Get errors back to caller Remove redundant error message Signed-off-by: David Zafman --- src/librados/IoCtxImpl.cc | 8 +++++--- src/tools/rados/rados.cc | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index 9877a54565740..8df68377c18b2 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -1283,7 +1283,7 @@ int librados::IoCtxImpl::get_inconsistent_objects(const pg_t& pg, c->io = this; ::ObjectOperation op; - op.scrub_ls(start_after, max_to_get, objects, interval, nullptr); + op.scrub_ls(start_after, max_to_get, objects, interval, &c->rval); object_locator_t oloc{poolid, pg.ps()}; Objecter::Op *o = objecter->prepare_pg_read_op( oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP, oncomplete, @@ -1304,7 +1304,7 @@ int librados::IoCtxImpl::get_inconsistent_snapsets(const pg_t& pg, c->io = this; ::ObjectOperation op; - op.scrub_ls(start_after, max_to_get, snapsets, interval, nullptr); + op.scrub_ls(start_after, max_to_get, snapsets, interval, &c->rval); object_locator_t oloc{poolid, pg.ps()}; Objecter::Op *o = objecter->prepare_pg_read_op( oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP, oncomplete, @@ -1962,7 +1962,9 @@ librados::IoCtxImpl::C_aio_Complete::C_aio_Complete(AioCompletionImpl *_c) void librados::IoCtxImpl::C_aio_Complete::finish(int r) { c->lock.Lock(); - c->rval = r; + // Leave an existing rval unless r != 0 + if (r) + c->rval = r; // This clears the error set in C_ObjectOperation_scrub_ls::finish() c->complete = true; c->cond.Signal(); diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index de88f8ebfab89..b0531c377482e 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1791,8 +1791,6 @@ static int do_get_inconsistent_cmd(const std::vector &nargs, cerr << "interval#" << interval << " expired." << std::endl; else if (ret == -ENOENT) cerr << "No scrub information available for pg " << pg << std::endl; - else - cerr << "Unknown error " << cpp_strerror(ret) << std::endl; break; } // It must be the same interval every time. EAGAIN would -- 2.39.5