Re: [PATCH] ceph: fix mds random selection readiness predicate
From: Ilya Dryomov
Date: Mon Jul 27 2026 - 04:48:34 EST
On Fri, Jul 24, 2026 at 7:59 PM Viacheslav Dubeyko <slava@xxxxxxxxxxx> wrote:
>
> On Fri, 2026-07-24 at 11:40 +0000, 朱一鸣 wrote:
> > Adding the current Ceph client maintainer list
> >
> > > On Jul 24, 2026, at 18:49, 朱一鸣 <zhuyiming@xxxxxxxxxxxx> 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: stable@xxxxxxxxxxxxxxx
> > > Link: https://tracker.ceph.com/issues/78648
> > > Signed-off-by: Yiming Zhu <zhuyiming@xxxxxxxxxxxx>
> > > ---
> > > 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 <slava@xxxxxxxxxxx>
Applied.
Thanks,
Ilya