From 80e25b00554e3955f7bee2e03eba6c55a955999b Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 12 Aug 2016 08:26:49 -0400 Subject: [PATCH] rbd: bench io-size should not be larger than image size Fixes: http://tracker.ceph.com/issues/16967 Signed-off-by: Jason Dillaman (cherry picked from commit 113775eb583fa28a669c6dc1f8dbf47a8ecd789c) Conflicts: src/tools/rbd/action/BenchWrite.cc: trivial resolution --- src/tools/rbd/action/BenchWrite.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/tools/rbd/action/BenchWrite.cc b/src/tools/rbd/action/BenchWrite.cc index c124f30423cad..c012708896b8e 100644 --- a/src/tools/rbd/action/BenchWrite.cc +++ b/src/tools/rbd/action/BenchWrite.cc @@ -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 thread_offset; uint64_t i; uint64_t start_pos; -- 2.39.5