]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Error from start_flush() not checked in agent_maybe_flush()
authorDavid Zafman <david.zafman@inktank.com>
Mon, 17 Mar 2014 22:48:36 +0000 (15:48 -0700)
committerDavid Zafman <david.zafman@inktank.com>
Tue, 25 Mar 2014 18:11:13 +0000 (11:11 -0700)
This caused a very minor memory leak since ctx was allocated
Include logging of l_osd_agent_skip

Signed-off-by: David Zafman <david.zafman@inktank.com>
src/osd/ReplicatedPG.cc

index bad01e8cf988d8921323a14af5a6c38a68dc97ec..8a822fdf065ffe38c57f9f9db7a78ad25dc22279 100644 (file)
@@ -10760,7 +10760,15 @@ bool ReplicatedPG::agent_maybe_flush(ObjectContextRef& obc)
   ctx->at_version = get_next_version();
   ctx->on_finish = new C_AgentFlushStartStop(this, obc->obs.oi.soid);
 
-  start_flush(ctx, false);
+  int result = start_flush(ctx, false);
+  if (result != -EINPROGRESS) {
+    dout(10) << __func__ << " start_flush() failed " << obc->obs.oi
+      << " with " << result << dendl;
+    osd->logger->inc(l_osd_agent_skip);
+    if (result != -ECANCELED)
+      close_op_ctx(ctx, result);
+    return false;
+  }
 
   osd->logger->inc(l_osd_agent_flush);
   return true;