]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: let OmapIterator mutators return future<>
authorKefu Chai <kchai@redhat.com>
Wed, 4 Nov 2020 09:50:15 +0000 (17:50 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 4 Nov 2020 14:48:52 +0000 (22:48 +0800)
instead of returning future<int> where the int represents an errno which
is not checked by any callers, we should just return a future<>, we
could erroratorize it later on, but returning an int is not the right
way to handle this, and it is not consistent with how we handle other
errors elsewhere in crimson.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/os/alienstore/alien_store.cc
src/crimson/os/alienstore/alien_store.h
src/crimson/os/cyanstore/cyan_store.cc
src/crimson/os/cyanstore/cyan_store.h
src/crimson/os/futurized_store.h
src/crimson/osd/replicated_recovery_backend.cc
src/osd/PGLog.h

index 8fe779161be52cc10846fdd0ce365a802151fcb5..56bf63fb8f5c74bf1c80af3fee5544cff2a0c94a 100644 (file)
@@ -501,33 +501,45 @@ seastar::future<FuturizedStore::OmapIteratorRef> AlienStore::get_omap_iterator(
 
 //TODO: each iterator op needs one submit, this is not efficient,
 //      needs further optimization.
-seastar::future<int> AlienStore::AlienOmapIterator::seek_to_first()
+seastar::future<> AlienStore::AlienOmapIterator::seek_to_first()
 {
   return store->tp->submit([=] {
     return iter->seek_to_first();
+  }).then([] (int r) {
+    assert(r == 0);
+    return seastar::now();
   });
 }
 
-seastar::future<int> AlienStore::AlienOmapIterator::upper_bound(
+seastar::future<> AlienStore::AlienOmapIterator::upper_bound(
   const std::string& after)
 {
   return store->tp->submit([this, after] {
     return iter->upper_bound(after);
+  }).then([] (int r) {
+    assert(r == 0);
+    return seastar::now();
   });
 }
 
-seastar::future<int> AlienStore::AlienOmapIterator::lower_bound(
+seastar::future<> AlienStore::AlienOmapIterator::lower_bound(
   const std::string& to)
 {
   return store->tp->submit([this, to] {
     return iter->lower_bound(to);
+  }).then([] (int r) {
+    assert(r == 0);
+    return seastar::now();
   });
 }
 
-seastar::future<int> AlienStore::AlienOmapIterator::next()
+seastar::future<> AlienStore::AlienOmapIterator::next()
 {
   return store->tp->submit([this] {
     return iter->next();
+  }).then([] (int r) {
+    assert(r == 0);
+    return seastar::now();
   });
 }
 
index 55d0cda55834137257da36659cd96f41bcc2ad92..9238c4df548bdc04179afb3691fa033ab827fa72 100644 (file)
@@ -25,11 +25,11 @@ public:
   public:
     AlienOmapIterator(ObjectMap::ObjectMapIterator& it,
        AlienStore* store) : iter(it), store(store) {}
-    seastar::future<int> seek_to_first();
-    seastar::future<int> upper_bound(const std::string& after);
-    seastar::future<int> lower_bound(const std::string& to);
+    seastar::future<> seek_to_first();
+    seastar::future<> upper_bound(const std::string& after);
+    seastar::future<> lower_bound(const std::string& to);
     bool valid() const;
-    seastar::future<int> next();
+    seastar::future<> next();
     std::string key();
     seastar::future<std::string> tail_key();
     ceph::buffer::list value();
index 03d59d77cfd20d93b520781d018012979d7e879e..645a75340b0868232d1b73dbcf4884f9f7ec1412 100644 (file)
@@ -802,22 +802,22 @@ CyanStore::stat(
   return seastar::make_ready_future<struct stat>(std::move(st));
 }
 
-seastar::future<int> CyanStore::CyanOmapIterator::seek_to_first()
+seastar::future<> CyanStore::CyanOmapIterator::seek_to_first()
 {
   iter = obj->omap.begin();
-  return seastar::make_ready_future<int>(0);
+  return seastar::make_ready_future<>();
 }
 
-seastar::future<int> CyanStore::CyanOmapIterator::upper_bound(const std::string& after)
+seastar::future<> CyanStore::CyanOmapIterator::upper_bound(const std::string& after)
 {
   iter = obj->omap.upper_bound(after);
-  return seastar::make_ready_future<int>(0);
+  return seastar::make_ready_future<>();
 }
 
-seastar::future<int> CyanStore::CyanOmapIterator::lower_bound(const std::string &to)
+seastar::future<> CyanStore::CyanOmapIterator::lower_bound(const std::string &to)
 {
   iter = obj->omap.lower_bound(to);
-  return seastar::make_ready_future<int>(0);
+  return seastar::make_ready_future<>();
 }
 
 bool CyanStore::CyanOmapIterator::valid() const
@@ -825,10 +825,10 @@ bool CyanStore::CyanOmapIterator::valid() const
   return iter != obj->omap.end();
 }
 
-seastar::future<int> CyanStore::CyanOmapIterator::next()
+seastar::future<> CyanStore::CyanOmapIterator::next()
 {
   ++iter;
-  return seastar::make_ready_future<int>(0);
+  return seastar::make_ready_future<>();
 }
 
 }
index 2c773211af1ba5bbe71e74f3c898f160cb28aeed..0dc9ddef271e73f180e4263fb79b9465970fede0 100644 (file)
@@ -42,15 +42,15 @@ public:
     CyanOmapIterator(ObjectRef obj) : obj(obj) {
       iter = obj->omap.begin();
     }
-    virtual seastar::future<int> seek_to_first();
-    virtual seastar::future<int> upper_bound(const std::string &after);
-    virtual seastar::future<int> lower_bound(const std::string &to);
+    virtual seastar::future<> seek_to_first();
+    virtual seastar::future<> upper_bound(const std::string &after);
+    virtual seastar::future<> lower_bound(const std::string &to);
     virtual bool valid() const;
-    virtual seastar::future<int> next();
+    virtual seastar::future<> next();
     virtual std::string key() {
       return iter->first;
     }
-    virtual seastar::future<std::string> tail_key() {
+    virtual seastar::future<std::string> tail_key(){
       return seastar::make_ready_future<std::string>((++obj->omap.end())->first);
     }
     virtual ceph::buffer::list value() {
index dd41f9c04934134a3e73777677cc3cf2366a9f2a..d7f3d585426b3e74e9cc45a3fe44c98f846f5141 100644 (file)
@@ -28,20 +28,20 @@ class FuturizedStore {
 public:
   class OmapIterator {
   public:
-    virtual seastar::future<int> seek_to_first() {
-      return seastar::make_ready_future<int>(0);
+    virtual seastar::future<> seek_to_first() {
+      return seastar::make_ready_future<>();
     }
-    virtual seastar::future<int> upper_bound(const std::string &after) {
-      return seastar::make_ready_future<int>(0);
+    virtual seastar::future<> upper_bound(const std::string &after) {
+      return seastar::make_ready_future<>();
     }
-    virtual seastar::future<int> lower_bound(const std::string &to) {
-      return seastar::make_ready_future<int>(0);
+    virtual seastar::future<> lower_bound(const std::string &to) {
+      return seastar::make_ready_future<>();
     }
     virtual bool valid() const {
       return false;
     }
-    virtual seastar::future<int> next() {
-      return seastar::make_ready_future<int>(0);
+    virtual seastar::future<> next() {
+      return seastar::make_ready_future<>();
     }
     virtual std::string key() {
       return {};
index 03ffda209b6e5d523836979d4074bc00b5f24588..0040ea2095028b87ab04bb51d9a5e2181b72ea12 100644 (file)
@@ -529,7 +529,7 @@ ReplicatedRecoveryBackend::read_omap_for_push_op(
       return seastar::make_ready_future<>();
     }
     return omap_iter->lower_bound(progress.omap_recovered_to).then(
-      [omap_iter, &new_progress, &max_len, push_op](int ret) {
+      [omap_iter, &new_progress, &max_len, push_op] {
       return seastar::repeat([omap_iter, &new_progress, &max_len, push_op] {
         if (!omap_iter->valid()) {
           new_progress.omap_complete = true;
@@ -552,7 +552,7 @@ ReplicatedRecoveryBackend::read_omap_for_push_op(
         } else {
           max_len = 0;
         }
-        return omap_iter->next().then([](int r) {
+        return omap_iter->next().then([] {
           return seastar::stop_iteration::no;
         });
       });
index cea890a4c69116785785583b50e9bf04be960544..4dbc351476b28c55320ae1bf566e33753e13817b 100644 (file)
@@ -1747,7 +1747,7 @@ public:
                      seastar::stop_iteration::yes);
          }
          process_entry(iter);
-         return iter->next().then([](int) {
+         return iter->next().then([] {
            return seastar::stop_iteration::no;
          });
        });