From 0fbd7b602cf79f1d021c7fa07acbc077b92558ca Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Wed, 10 Feb 2021 11:55:12 +0900 Subject: [PATCH] src/test: make TierFlushOp to set snapshot Signed-off-by: Myoungwon Oh --- src/test/osd/RadosModel.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/test/osd/RadosModel.h b/src/test/osd/RadosModel.h index f19d63bb711..22c6501121d 100644 --- a/src/test/osd/RadosModel.h +++ b/src/test/osd/RadosModel.h @@ -2756,6 +2756,7 @@ public: librados::ObjectReadOperation op; string oid; std::shared_ptr in_use; + int snap; TierFlushOp(int n, RadosTestContext *context, @@ -2763,7 +2764,8 @@ public: TestOpStat *stat) : TestOp(n, context, stat), completion(NULL), - oid(oid) + oid(oid), + snap(-1) {} void _begin() override @@ -2773,6 +2775,17 @@ public: context->oid_in_use.insert(oid); context->oid_not_in_use.erase(oid); + if (0 && !(rand() % 4) && !context->snaps.empty()) { + snap = rand_choose(context->snaps)->first; + in_use = context->snaps_in_use.lookup_or_create(snap, snap); + } else { + snap = -1; + } + + if (snap >= 0) { + context->io_ctx.snap_set_read(context->snaps[snap]); + } + pair *cb_arg = new pair(this, new TestOp::CallbackInfo(0)); @@ -2785,6 +2798,10 @@ public: int r = context->io_ctx.aio_operate(context->prefix+oid, completion, &op, flags, NULL); ceph_assert(!r); + + if (snap >= 0) { + context->io_ctx.snap_set_read(0); + } } void _finish(CallbackInfo *info) override @@ -2800,7 +2817,7 @@ public: } else { ceph_abort_msg("shouldn't happen"); } - context->update_object_version(oid, completion->get_version64()); + context->update_object_version(oid, completion->get_version64(), snap); context->oid_in_use.erase(oid); context->oid_not_in_use.insert(oid); context->kick(); -- 2.39.5