Re: [PATCH] ceph: fix mds random selection readiness predicate
Viacheslav Dubeyko <[email protected]> Fri, 24 Jul 2026 10:59:26 -0700
| Newsgroups | org.kernel.vger.ceph-devel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 2026-07-24 at 11:40 +0000, 朱一鸣 wrote: > Adding the current Ceph client maintainer list > > > On Jul 24, 2026, at 18:49, 朱一鸣 <[email protected]> wrote: > > > > 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 > > Good catch. Reviewed-by: Viacheslav Dubeyko <[email protected]> Thanks, Slava.