[PATCH] ceph: fix mds random selection readiness predicate
Yiming Zhu <[email protected]> Fri, 24 Jul 2026 18:49:20 +0800
| Newsgroups | org.kernel.vger.ceph-devel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
CEPH_MDS_IS_READY() is parsed so that the ternary expression can
return true for an MDS entry with state 0 when it is not laggy. This
allows the random selector to choose a down/DNE rank.
Group the ternary expression under the state check so zero-state ranks
are not treated as ready.
Fixes: b38c9eb4757d ("ceph: allow choose random mds")
Cc: [email protected]
Link: https://tracker.ceph.com/issues/78648
Signed-off-by: Yiming Zhu <[email protected]>
---
fs/ceph/mdsmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
index d8e46eb7e5eb..450a4dc9662e 100644
--- a/fs/ceph/mdsmap.c
+++ b/fs/ceph/mdsmap.c
@@ -15,7 +15,7 @@
#include "super.h"
#define CEPH_MDS_IS_READY(i, ignore_laggy) \
- (m->m_info[i].state > 0 && ignore_laggy ? true : !m->m_info[i].laggy)
+ (m->m_info[i].state > 0 && (ignore_laggy ? true : !m->m_info[i].laggy))
static int __mdsmap_get_random_mds(struct ceph_mdsmap *m, bool ignore_laggy)
{
base-commit: 48a5a7ab8d6ab7090564339e039c421f315de912
--
2.55.0