]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds/{LocalLockC,SimpleLock}: un-inline methods using `MutationRef`
authorMax Kellermann <max.kellermann@ionos.com>
Tue, 29 Oct 2024 21:52:10 +0000 (22:52 +0100)
committerMax Kellermann <max.kellermann@ionos.com>
Thu, 17 Apr 2025 16:00:16 +0000 (18:00 +0200)
commit2629e7ac19d1e9b344b622321edd6ae155ab6e0f
treeb42a3fa75ec4502809e2e0f8f30fc8be06d5b6a6
parent5955f1f8491575906483417ce8775c19ece8f2f8
mds/{LocalLockC,SimpleLock}: un-inline methods using `MutationRef`

Commit e8bc28407117 added a forward declaration for `MutationRef` but
that doesn't work as long as the header constructs and destructs
instances, causing errors such as:

 build/debug/boost/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘boost::intrusive_ptr<T>::~intrusive_ptr() [with T = MutationImpl]’:
 src/mds/SimpleLock.h:424:5:   required from here
   424 |     ceph_assert(!get_xlock_by());
       |                  ~~~~~~~~~~~~^~
 build/debug/boost/include/boost/smart_ptr/intrusive_ptr.hpp:100:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘ceph::common::intrusive_ptr_release’?
   100 |         if( px != 0 ) intrusive_ptr_release( px );
       |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
       |                       ceph::common::intrusive_ptr_release

This never occurred previously because `Mutation.h` happened to be
already included by somebody else.

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
src/mds/SimpleLock.cc
src/mds/SimpleLock.h