]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: use SimpleLock::WAIT_ALL for wait mask 68313/head
authorPatrick Donnelly <pdonnell@ibm.com>
Tue, 24 Feb 2026 19:30:24 +0000 (14:30 -0500)
committerJos Collin <jcollin@redhat.com>
Fri, 10 Apr 2026 10:48:38 +0000 (16:18 +0530)
commit2c825d1e8c08f5f43389ca954af754b0f4c22387
tree4c80ab16d82bec9c9588efb1fe5913249a1b3782
parentff309bba00c8a136d95cbefafa71a75e48713d73
mds: use SimpleLock::WAIT_ALL for wait mask

The Locker uses has_any_waiter for a particular lock to evaluate whether
to nudge the log. For the squid, tentacle, and main branches, this
larger bit mask (all 64 bits) will cause this to wrongly return true for
other locks which have waiters. The side-effect of waking requests
spuriously is undesirable but should not affect performance
significantly.

For reef and older releases, using std::numeric_limits<uint64_t>::max()
in has_any_waiter() causes a bitwise overflow that sets the wait-queue
search bound impossibly high, resulting in the method always incorrectly
returning false. This results in nudge_log never nudging the log!

Fixes: db5c9dc2e6cc95a8d112c2131e4cac5340ca9dd0
Fixes: https://tracker.ceph.com/issues/75141
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 0be3a7896be1d5e9d6b04a6b943c2b5535b8523f)
src/mds/SimpleLock.h