]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mds: prevent new wrlocks on LocalLock if there exists any xlock waiter
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 5 Mar 2024 17:19:42 +0000 (12:19 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 20 Mar 2024 14:56:57 +0000 (10:56 -0400)
commitbddd3c72014dc7aa4bb4f16e4633111a0f2e0bb0
tree70cb3082eca98f98fb5fced56a4e6bee7ad59a5b
parent1ec6817cc082b379fba86bcd0a73ff950d7d1152
mds: prevent new wrlocks on LocalLock if there exists any xlock waiter

Otherwise, an xlock waiter can become starved as a LocalLock supports multiple
writers.

Strictly speaking, a new lock state would be appropriate for this but we cheat
frequently with the LocalLock -- there is only one state. All transition checks
are already manually performed by the Locker.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/LocalLockC.h