]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rados, librados: Get errors back to caller 25548/head
authorDavid Zafman <dzafman@redhat.com>
Thu, 13 Dec 2018 21:58:53 +0000 (13:58 -0800)
committerDavid Zafman <dzafman@redhat.com>
Thu, 13 Dec 2018 23:30:35 +0000 (15:30 -0800)
Remove redundant error message

Signed-off-by: David Zafman <dzafman@redhat.com>
src/librados/IoCtxImpl.cc
src/tools/rados/rados.cc

index 9877a54565740199cfabeb8951c385cb2610e70d..8df68377c18b213aa7e7862ae56e5fe26ff2ff4c 100644 (file)
@@ -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();
 
index de88f8ebfab896c0547bcbdf0a05ea6634a4645a..b0531c377482e8bb331027fa6cf6ef61a0cc40df 100644 (file)
@@ -1791,8 +1791,6 @@ static int do_get_inconsistent_cmd(const std::vector<const char*> &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