]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: use 128 bits for waiters on MDSCacheObject
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 20 Feb 2024 22:08:32 +0000 (17:08 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 20 Mar 2024 14:56:54 +0000 (10:56 -0400)
commit84b33ea9fe6268adfaca1e17b282e68788e38bf4
tree1b3e16a8870162794834e5abf0fae9a8314b41c4
parenta9964a7ccc4394f923fb0f1c76eb8fa03fe8733d
mds: use 128 bits for waiters on MDSCacheObject

Adding a new inode lock will overflow inode wait bits into the MDSCacheObject
wait bits. Make space for the quiescelock.

This includes a minor refactor to no longer attempt scoping the set of masks we
test in MDSCacheObject::waiting when calling MDSCacheObject::is_waiter_for.
This optimization wasn't worth the overhead and would be awkard to keep as
std::bitset cannot be used as a key for a std::multimap (easily).  Instead, we
use the sequence number as a key which helps us to avoid allocating another map
whenever we call MDSCacheObject::take_waiting.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/CDir.h
src/mds/CInode.h
src/mds/MDSCacheObject.cc
src/mds/MDSCacheObject.h
src/mds/SimpleLock.cc
src/mds/SimpleLock.h