]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rados, librados: Get errors back to caller 25603/head
authorDavid Zafman <dzafman@redhat.com>
Thu, 13 Dec 2018 21:58:53 +0000 (13:58 -0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 18 Dec 2018 11:23:42 +0000 (12:23 +0100)
Remove redundant error message

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit ddc111ee00b26039bdc47a79528c9d864edc101e)

src/librados/IoCtxImpl.cc
src/tools/rados/rados.cc

index 3dbc8235bbe411c2f80b718fde2748708bd23044..a017885751ed302b863f67c1b4242f6e0747ec87 100644 (file)
@@ -1309,7 +1309,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,
@@ -1330,7 +1330,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,
@@ -2012,7 +2012,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 f74eb4647ece3697b30857310f3fc1abe32480ab..ae1f7973839a658c50d50854de9853ae9cb056dd 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