#include "include/int_types.h"
#include "include/buffer_fwd.h"
+#include "include/rados/rados_types.hpp"
+#include "common/zipkin_trace.h"
#include "librbd/io/Types.h"
#include <map>
+class Context;
class ObjectExtent;
namespace librbd {
+
+struct ImageCtx;
+
namespace io {
namespace util {
ceph::bufferlist *ws_data,
bool force_write);
+template <typename ImageCtxT = librbd::ImageCtx>
+void read_parent(ImageCtxT *image_ctx, uint64_t object_no, uint64_t off,
+ uint64_t len, librados::snap_t snap_id,
+ const ZTracer::Trace &trace, ceph::bufferlist* data,
+ Context* on_finish);
+
} // namespace util
} // namespace io
} // namespace librbd