#include "LogSegment.h"
#include "MDBalancer.h"
#include "SnapClient.h"
+#include "SnapRealm.h"
+#include "events/EMetaBlob.h"
#include "common/bloom_filter.hpp"
+#include "common/debug.h"
#include "common/likely.h"
#include "include/Context.h"
#include "common/Clock.h"
#include "include/ceph_assert.h"
#include "include/compat.h"
+#include "messages/MClientReply.h" // for struct DirStat
+
#define dout_context g_ceph_context
#define dout_subsys ceph_subsys_mds
#undef dout_prefix
state_set(STATE_AUTH);
}
+CDir::~CDir() noexcept = default;
+
/**
* Check the recursive statistics on size for consistency.
* If mds_debug_scatterstat is enabled, assert for correctness,
return bloom->contains(name.data(), name.size());
}
+void CDir::remove_bloom() {
+ bloom.reset();
+}
+
void CDir::remove_null_dentries() {
dout(12) << __func__ << " " << *this << dendl;
#include <string>
#include <string_view>
-#include "common/bloom_filter.hpp"
#include "common/config.h"
#include "include/buffer_fwd.h"
#include "include/counter.h"
#include "include/types.h"
+#include "snap.h" // for struct sr_t
#include "CInode.h"
#include "MDSCacheObject.h"
-#include "MDSContext.h"
-#include "cephfs_features.h"
-#include "SessionMap.h"
-#include "messages/MClientReply.h"
+#include "Mutation.h" // for struct MDLockCache
+struct DirStat;
+struct session_info_t;
+class bloom_filter;
class CDentry;
class MDCache;
static const int DUMP_DEFAULT = DUMP_ALL & (~DUMP_ITEMS);
CDir(CInode *in, frag_t fg, MDCache *mdc, bool auth);
+ ~CDir() noexcept;
std::string_view pin_name(int p) const override {
switch (p) {
void add_to_bloom(CDentry *dn);
bool is_in_bloom(std::string_view name);
bool has_bloom() { return (bloom ? true : false); }
- void remove_bloom() {
- bloom.reset();
- }
+ void remove_bloom();
void try_remove_dentries_for_stray();
bool try_trim_snap_dentry(CDentry *dn, const std::set<snapid_t>& snaps);