From: Adam Crume Date: Thu, 31 Jul 2014 19:21:35 +0000 (-0700) Subject: rbd-replay: Use non-zero fake data X-Git-Tag: v0.86~231^2~35 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0d8222251273b9ca7e2a508e1d19d17aaf8eb5c4;p=ceph.git rbd-replay: Use non-zero fake data Signed-off-by: Adam Crume --- diff --git a/src/rbd_replay/actions.cc b/src/rbd_replay/actions.cc index 0ac7801365c0..d48ccef3d8d0 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);