const cls::rbd::SnapshotNamespace &snap_namespace,
const std::string &snap_name,
uint64_t journal_op_tid,
- uint64_t request_id,
bool skip_object_map,
ProgressContext &prog_ctx)
: Request<I>(image_ctx, on_finish, journal_op_tid),
m_snap_namespace(snap_namespace), m_snap_name(snap_name),
- m_request_id(request_id), m_skip_object_map(skip_object_map),
- m_prog_ctx(prog_ctx) {
+ m_skip_object_map(skip_object_map), m_prog_ctx(prog_ctx) {
}
template <typename I>
CephContext *cct = image_ctx.cct;
ldout(cct, 5) << this << " " << __func__ << dendl;
- image_ctx.image_watcher->notify_quiesce(
- m_request_id, m_prog_ctx, create_async_context_callback(
+ m_request_id = image_ctx.image_watcher->notify_quiesce(
+ m_prog_ctx, create_async_context_callback(
image_ctx, create_context_callback<SnapshotCreateRequest<I>,
&SnapshotCreateRequest<I>::handle_notify_quiesce>(this)));
}
typedef mirror::snapshot::SetImageStateRequest<MockImageCtx> MockSetImageStateRequest;
void expect_notify_quiesce(MockImageCtx &mock_image_ctx, int r) {
- EXPECT_CALL(*mock_image_ctx.image_watcher, notify_quiesce(_, _, _))
- .WillOnce(WithArg<2>(
- CompleteContext(r, mock_image_ctx.image_ctx->op_work_queue)));
+ EXPECT_CALL(*mock_image_ctx.image_watcher, notify_quiesce(_, _))
+ .WillOnce(DoAll(WithArg<1>(CompleteContext(
+ r, mock_image_ctx.image_ctx->op_work_queue)),
+ Return(0)));
}
void expect_block_writes(MockImageCtx &mock_image_ctx) {
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
librbd::NoOpProgressContext prog_ctx;
MockSnapshotCreateRequest *req = new MockSnapshotCreateRequest(
mock_image_ctx, &cond_ctx, cls::rbd::UserSnapshotNamespace(),
- "snap1", 0, 0, true, prog_ctx);
+ "snap1", 0, true, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();
mock_image_ctx, &cond_ctx,
cls::rbd::MirrorSnapshotNamespace{
cls::rbd::MIRROR_SNAPSHOT_STATE_PRIMARY, {}, "", CEPH_NOSNAP},
- "snap1", 0, 0, false, prog_ctx);
+ "snap1", 0, false, prog_ctx);
{
std::shared_lock owner_locker{mock_image_ctx.owner_lock};
req->send();