]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbdtool: fix export
authorSage Weil <sage@newdream.net>
Wed, 7 Jul 2010 23:34:27 +0000 (16:34 -0700)
committerSage Weil <sage@newdream.net>
Wed, 7 Jul 2010 23:34:27 +0000 (16:34 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
src/rbdtool.cc

index 38ed5b5c07981a4d531358e8690d6eae7aee2835..00a42afb2ffaa6c3f9632c8eeff8a9f474d1deaf 100644 (file)
@@ -580,22 +580,19 @@ static int do_export(pool_t pool, string& md_oid, const char *path)
       goto done;
     }
 
-    pos += block_size;
-
     if (bl.length()) {
+      ret = lseek64(fd, pos, SEEK_SET);
+      if (ret < 0) {
+       ret = -errno;
+       cerr << "could not seek to pos " << pos << std::endl;
+       goto done;
+      }
       ret = write(fd, bl.c_str(), bl.length());
       if (ret < 0)
         goto done;
-
-      if (bl.length() < block_size) {
-        ret = lseek64(fd, pos, SEEK_SET);
-        if (ret < 0) {
-          ret = -errno;
-          cerr << "could not seek to pos " << pos << std::endl;
-          goto done;
-        }
-      }
     }
+
+    pos += block_size;
   }
   r = ftruncate(fd, header.image_size);
   if (r < 0)