f->dump_string("snap_name", snap_name);
}
+void RebuildObjectMapPayload::encode(bufferlist &bl) const {
+ ::encode(static_cast<uint32_t>(NOTIFY_OP_REBUILD_OBJECT_MAP), bl);
+ ::encode(async_request_id, bl);
+}
+
+void RebuildObjectMapPayload::decode(__u8 version, bufferlist::iterator &iter) {
+ ::decode(async_request_id, iter);
+}
+
+void RebuildObjectMapPayload::dump(Formatter *f) const {
+ f->dump_string("notify_op", stringify(NOTIFY_OP_REBUILD_OBJECT_MAP));
+ f->open_object_section("async_request_id");
+ async_request_id.dump(f);
+ f->close_section();
+}
+
void UnknownPayload::encode(bufferlist &bl) const {
assert(false);
}
case NOTIFY_OP_SNAP_CREATE:
payload = SnapCreatePayload();
break;
+ case NOTIFY_OP_REBUILD_OBJECT_MAP:
+ payload = RebuildObjectMapPayload();
+ break;
default:
payload = UnknownPayload();
break;
o.push_back(new NotifyMessage(FlattenPayload(AsyncRequestId(ClientId(0, 1), 2))));
o.push_back(new NotifyMessage(ResizePayload(123, AsyncRequestId(ClientId(0, 1), 2))));
o.push_back(new NotifyMessage(SnapCreatePayload("foo")));
+ o.push_back(new NotifyMessage(RebuildObjectMapPayload(AsyncRequestId(ClientId(0, 1), 2))));
}
void ResponseMessage::encode(bufferlist& bl) const {
case NOTIFY_OP_SNAP_CREATE:
out << "SnapCreate";
break;
+ case NOTIFY_OP_REBUILD_OBJECT_MAP:
+ out << "RebuildObjectMap";
+ break;
default:
out << "Unknown (" << static_cast<uint32_t>(op) << ")";
break;
};
enum NotifyOp {
- NOTIFY_OP_ACQUIRED_LOCK = 0,
- NOTIFY_OP_RELEASED_LOCK = 1,
- NOTIFY_OP_REQUEST_LOCK = 2,
- NOTIFY_OP_HEADER_UPDATE = 3,
- NOTIFY_OP_ASYNC_PROGRESS = 4,
- NOTIFY_OP_ASYNC_COMPLETE = 5,
- NOTIFY_OP_FLATTEN = 6,
- NOTIFY_OP_RESIZE = 7,
- NOTIFY_OP_SNAP_CREATE = 8
+ NOTIFY_OP_ACQUIRED_LOCK = 0,
+ NOTIFY_OP_RELEASED_LOCK = 1,
+ NOTIFY_OP_REQUEST_LOCK = 2,
+ NOTIFY_OP_HEADER_UPDATE = 3,
+ NOTIFY_OP_ASYNC_PROGRESS = 4,
+ NOTIFY_OP_ASYNC_COMPLETE = 5,
+ NOTIFY_OP_FLATTEN = 6,
+ NOTIFY_OP_RESIZE = 7,
+ NOTIFY_OP_SNAP_CREATE = 8,
+ NOTIFY_OP_REBUILD_OBJECT_MAP = 9
};
struct AcquiredLockPayload {
SnapCreatePayload(const std::string &name) : snap_name(name) {}
std::string snap_name;
-
+
+ void encode(bufferlist &bl) const;
+ void decode(__u8 version, bufferlist::iterator &iter);
+ void dump(Formatter *f) const;
+};
+
+struct RebuildObjectMapPayload {
+ RebuildObjectMapPayload() {}
+ RebuildObjectMapPayload(const AsyncRequestId &id) : async_request_id(id) {}
+
+ AsyncRequestId async_request_id;
+
void encode(bufferlist &bl) const;
void decode(__u8 version, bufferlist::iterator &iter);
void dump(Formatter *f) const;
FlattenPayload,
ResizePayload,
SnapCreatePayload,
+ RebuildObjectMapPayload,
UnknownPayload> Payload;
struct NotifyMessage {