]> git-server-git.apps.pok.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>
Fri, 22 Mar 2024 15:38:02 +0000 (11:38 -0400)
commit2ab89287a7fbffb738fe1e5761e62cbdb8792271
tree22635c4892781c72f401194d54410ccd18f09b73
parentca930243c4b274ff275102d174f85a9b6ef42c37
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>
(cherry picked from commit 84b33ea9fe6268adfaca1e17b282e68788e38bf4)
src/mds/CDir.h
src/mds/CInode.h
src/mds/MDSCacheObject.cc
src/mds/MDSCacheObject.h
src/mds/SimpleLock.cc
src/mds/SimpleLock.h