]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: call throttle_data() even if renew_state() failed
authorYehuda Sadeh <yehuda@redhat.com>
Tue, 12 Aug 2014 18:17:47 +0000 (11:17 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Tue, 23 Sep 2014 20:33:43 +0000 (13:33 -0700)
Otherwise we're going to leak the aio callback handle.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 7998c322179dd69a1250937321c3c2bb023e0e57)

src/rgw/rgw_rados.cc

index 98b80d62d9aac32981ab515f38679ced56dfa13a..7be2b48dd2e6595338abc49f574d4c544cff1774 100644 (file)
@@ -3033,6 +3033,11 @@ public:
          */
         ret = opstate->renew_state();
         if (ret < 0) {
+          ldout(store->ctx(), 0) << "ERROR: RGWRadosPutObj::handle_data(): failed to renew op state ret=" << ret << dendl;
+          int r = processor->throttle_data(handle, false);
+          if (r < 0) {
+            ldout(store->ctx(), 0) << "ERROR: RGWRadosPutObj::handle_data(): processor->throttle_data() returned " << r << dendl;
+          }
           /* could not renew state! might have been marked as cancelled */
           return ret;
         }