From c358dc057872c1d25285d822e4d2217a3b567e42 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 17 Apr 2025 17:04:26 +0200 Subject: [PATCH] mds/Mutation: un-inline print() to resolve circular dependency Mutation.h and SimpleLock.h have a circular dependency and we have to resolve it using forward-declarations. To make that possible, move print() to Mutation.cc. Signed-off-by: Max Kellermann --- src/mds/Mutation.cc | 11 +++++++++++ src/mds/Mutation.h | 12 ++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/mds/Mutation.cc b/src/mds/Mutation.cc index 4ba5f1ff4ba06..0628019807801 100644 --- a/src/mds/Mutation.cc +++ b/src/mds/Mutation.cc @@ -14,6 +14,7 @@ #include "Mutation.h" #include "ScatterLock.h" +#include "SimpleLock.h" #include "BatchOp.h" #include "CDentry.h" #include "CInode.h" @@ -105,6 +106,16 @@ bool MutationImpl::is_wrlocked(SimpleLock *lock) const { return false; } +void MutationImpl::LockOp::print(std::ostream& out) const { + CachedStackStringStream css; + *css << "0x" << std::hex << flags; + out << "LockOp(l=" << *lock << ",f=" << css->strv(); + if (wrlock_target != MDS_RANK_NONE) { + out << ",wt=" << wrlock_target; + } + out << ")"; +} + void MutationImpl::LockOpVec::erase_rdlock(SimpleLock* lock) { for (int i = size() - 1; i >= 0; --i) { diff --git a/src/mds/Mutation.h b/src/mds/Mutation.h index ef48c938988b2..7a1aece264363 100644 --- a/src/mds/Mutation.h +++ b/src/mds/Mutation.h @@ -29,7 +29,6 @@ #include "MDSContext.h" -#include "SimpleLock.h" #include "Capability.h" #include "common/StackStringStream.h" @@ -45,6 +44,7 @@ class CDentry; class MDSCacheObject; class Session; class ScatterLock; +class SimpleLock; struct sr_t; struct MDLockCache; @@ -84,15 +84,7 @@ public: return lock < r.lock; } - void print(std::ostream& out) const { - CachedStackStringStream css; - *css << "0x" << std::hex << flags; - out << "LockOp(l=" << *lock << ",f=" << css->strv(); - if (wrlock_target != MDS_RANK_NONE) { - out << ",wt=" << wrlock_target; - } - out << ")"; - } + void print(std::ostream& out) const; SimpleLock* lock; mutable unsigned flags; -- 2.39.5