]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: bench io-size should not be larger than image size 10796/head
authorJason Dillaman <dillaman@redhat.com>
Fri, 12 Aug 2016 12:26:49 +0000 (08:26 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 19 Aug 2016 18:24:01 +0000 (14:24 -0400)
Fixes: http://tracker.ceph.com/issues/16967
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 113775eb583fa28a669c6dc1f8dbf47a8ecd789c)

Conflicts:
src/tools/rbd/action/BenchWrite.cc: trivial resolution

src/tools/rbd/action/BenchWrite.cc

index c124f30423cadb4f822790315a8c7c2f23a274c7..c012708896b8e21a3ab1920caed5624eac89b51d 100644 (file)
@@ -118,6 +118,14 @@ int do_bench_write(librbd::Image& image, uint64_t io_size,
                    uint64_t io_threads, uint64_t io_bytes,
                    bool random)
 {
+  uint64_t size = 0;
+  image.size(&size);
+  if (io_size > size) {
+    std::cerr << "rbd: io-size " << prettybyte_t(io_size) << " "
+              << "larger than image size " << prettybyte_t(size) << std::endl;
+    return -EINVAL;
+  }
+
   rbd_bencher b(&image);
 
   std::cout << "bench-write "
@@ -138,9 +146,6 @@ int do_bench_write(librbd::Image& image, uint64_t io_size,
   utime_t last;
   unsigned ios = 0;
 
-  uint64_t size = 0;
-  image.size(&size);
-
   vector<uint64_t> thread_offset;
   uint64_t i;
   uint64_t start_pos;