#include "include/neorados/RADOS.hpp"
#include "common/ceph_context.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/dout.h"
#include "common/errno.h"
#include "common/perf_counters.h"
#include "librbd/image_watcher/NotifyLockOwner.h"
#include "librbd/io/AioCompletion.h"
#include "include/encoding.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/errno.h"
+#include "common/perf_counters.h"
#include <boost/bind/bind.hpp>
#include <shared_mutex> // for std::shared_lock
#include "librbd/Journal.h"
#include "include/rados/librados.hpp"
#include "common/AsyncOpTracker.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/errno.h"
#include "common/Timer.h"
#include "common/WorkQueue.h"
#include "librbd/object_map/DiffRequest.h"
#include "include/rados/librados.hpp"
#include "include/interval_set.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/errno.h"
#include "common/Cond.h"
#include "common/Throttle.h"
#include "librbd/api/PoolMetadata.h"
#include "cls/rbd/cls_rbd_client.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/dout.h"
#include "common/errno.h"
#include "common/Cond.h"
#include "librbd/api/Trash.h"
#include "include/rados/librados.hpp"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/dout.h"
#include "common/errno.h"
#include "common/Cond.h"
#include "librbd/cache/ObjectCacherObjectDispatch.h"
#include "include/neorados/RADOS.hpp"
#include "common/errno.h"
+#include "common/perf_counters.h"
#include "librbd/ImageCtx.h"
#include "librbd/Journal.h"
#include "librbd/Utils.h"
#include "librbd/cache/ImageWriteback.h"
#include "librbd/cache/pwl/ssd/LogEntry.h"
+#include "include/intarith.h" // for round_up_to()
+
#define dout_subsys ceph_subsys_rbd_pwl
#undef dout_prefix
#define dout_prefix *_dout << "librbd::cache::pwl::ssd::WriteLogEntry: " \
#include "Request.h"
+#include "include/intarith.h" // for round_up_to()
+
+#include <ostream>
+
#define dout_subsys ceph_subsys_rbd_pwl
#undef dout_prefix
#define dout_prefix *_dout << "librbd::cache::pwl::ssd::Request: " << this << " " \
#include "librbd/cache/pwl/Request.h"
+#include <iosfwd>
+
namespace librbd {
class BlockGuardCell;
#include "acconfig.h"
+#include "common/Formatter.h"
#include "librbd/io/Types.h"
#include "librbd/cache/pwl/Types.h"
#include "include/buffer.h"
#include "include/Context.h"
#include "include/ceph_assert.h"
+#include "include/intarith.h" // for round_up_to()
#include "common/Clock.h" // for ceph_clock_now()
#include "common/deleter.h"
#include "common/dout.h"
#include "librbd/io/Utils.h"
#include "librbd/journal/Types.h"
#include "include/rados/librados.hpp"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/errno.h"
#include "common/perf_counters.h"
#include "osdc/Striper.h"
#include "include/int_types.h"
#include "include/buffer.h"
+#include "include/rados.h" // for CEPH_NOSNAP
#include "common/bit_vector.hpp"
#include "librbd/AsyncRequest.h"
#define CEPH_LIBRBD_OBJECT_MAP_SNAPSHOT_ROLLBACK_REQUEST_H
#include "include/int_types.h"
+#include "include/rados.h" // for CEPH_NOSNAP
#include "librbd/object_map/Request.h"
class Context;
#include "cls/rbd/cls_rbd_types.h"
#include "librbd/operation/SnapshotCreateRequest.h"
+#include "common/Clock.h" // for ceph_clock_now()
#include "common/dout.h"
#include "common/errno.h"
#include "librbd/ExclusiveLock.h"