#include "CInode.h"
#include "CDir.h"
#include "CDentry.h"
+#include "BatchOp.h"
+#include "SnapRealm.h"
#include "MDSRank.h"
#include "MDCache.h"
#include "LogSegment.h"
#include "common/Clock.h"
-
+#include "common/ceph_json.h"
#include "common/config.h"
+#include "common/errno.h"
#include "global/global_context.h"
#include "include/denc.h"
#include "include/ceph_assert.h"
+#include "include/int_types.h"
+#include "include/random.h" // for ceph::util::generate_random_number()
#include "mds/MDSContinuation.h"
#include "mds/InoTable.h"
#include "cephfs_features.h"
#include "osdc/Objecter.h"
+#include "messages/MClientCaps.h"
+#include "messages/MClientReply.h" // for struct InodeStat
+
#define dout_context g_ceph_context
#define dout_subsys ceph_subsys_mds
#undef dout_prefix
#include <list>
#include <map>
#include <set>
+#include <sstream>
#include <string_view>
+#include <vector>
#include "common/config.h"
+#include "common/debug.h"
+#include "common/ref.h" // for cref_t
#include "common/RefCountedObj.h"
#include "include/compat.h"
+#include "include/Context.h" // for C_GatherBuilder
#include "include/counter.h"
#include "include/elist.h"
+#include "include/filepath.h"
#include "include/types.h"
#include "include/lru.h"
#include "include/compact_set.h"
#include "MDSCacheObject.h"
#include "MDSContext.h"
#include "flock.h"
+#include "inode_backtrace.h" // for inode_backtrace_t
#include "BatchOp.h"
#include "CDentry.h"
+#include "ScrubHeader.h"
#include "SimpleLock.h"
#include "ScatterLock.h"
#include "LocalLockC.h"
#include "messages/MClientCaps.h"
+#include <boost/intrusive_ptr.hpp>
+
#define dout_context g_ceph_context
+struct sr_t;
+class BatchOp;
class Context;
+class CDentry;
class CDir;
class CInode;
class MDCache;
class Session;
struct ObjectOperation;
class EMetaBlob;
+class MClientCaps;
+struct MutationImpl;
+struct MDRequestImpl;
+typedef boost::intrusive_ptr<MutationImpl> MutationRef;
+typedef boost::intrusive_ptr<MDRequestImpl> MDRequestRef;
struct cinode_lock_info_t {
int lock;