]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: fix copy progress
authorSage Weil <sage@newdream.net>
Mon, 10 Oct 2011 16:50:33 +0000 (09:50 -0700)
committerSage Weil <sage@newdream.net>
Mon, 10 Oct 2011 16:50:33 +0000 (09:50 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
src/librbd.cc

index a61fee96739cf458b9570dc77d3caf712af8ad1e..2f0ecc77a2cf24e4a7c8d89a64725ca97df40867 100644 (file)
@@ -1107,13 +1107,14 @@ struct CopyProgressCtx {
 int do_copy_extent(uint64_t offset, size_t len, const char *buf, void *data)
 {
   CopyProgressCtx *cp = reinterpret_cast<CopyProgressCtx*>(data);
+  cp->prog_ctx.update_progress(offset, cp->src_size);
+  int ret = 0;
   if (buf) {
-    int ret = write(cp->destictx, offset, len, buf);
-    if (ret) {
+    ret = write(cp->destictx, offset, len, buf);
+    if (ret < 0)
       return ret;
-    }
   }
-  return cp->prog_ctx.update_progress(offset, cp->src_size);
+  return ret;
 }
 
 ProgressContext::~ProgressContext()