From 0d8222251273b9ca7e2a508e1d19d17aaf8eb5c4 Mon Sep 17 00:00:00 2001 From: Adam Crume Date: Thu, 31 Jul 2014 12:21:35 -0700 Subject: [PATCH] rbd-replay: Use non-zero fake data Signed-off-by: Adam Crume --- src/rbd_replay/actions.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/rbd_replay/actions.cc b/src/rbd_replay/actions.cc index 0ac7801365c01..d48ccef3d8d07 100644 --- a/src/rbd_replay/actions.cc +++ b/src/rbd_replay/actions.cc @@ -232,11 +232,25 @@ Action::ptr AioWriteAction::read_from(Action &src, Deser &d) { return Action::ptr(new AioWriteAction(src, imagectx_id, offset, length)); } +static std::string create_fake_data() { + char data[1 << 20]; // 1 MB + for (unsigned int i = 0; i < sizeof(data); i++) { + data[i] = (char) i; + } + return std::string(data, sizeof(data)); +} + void AioWriteAction::perform(ActionCtx &worker) { + static const std::string fake_data(create_fake_data()); dout(ACTION_LEVEL) << "Performing " << *this << dendl; librbd::Image *image = worker.get_image(m_imagectx_id); PendingIO::ptr io(new PendingIO(pending_io_id(), worker)); - io->bufferlist().append_zero(m_length); + uint64_t remaining = m_length; + while (remaining > 0) { + uint64_t n = std::min(remaining, fake_data.length()); + io->bufferlist().append(fake_data.data(), n); + remaining -= n; + } worker.add_pending(io); if (worker.readonly()) { worker.remove_pending(io); -- 2.39.5