Re: [PATCH 4/5] ceph: move mdsc->mutex into __do_request()
From: Xiubo Li
Date: Tue Jul 14 2026 - 23:02:48 EST
On Wed, 15 Jul 2026 at 02:52, Viacheslav Dubeyko <slava@xxxxxxxxxxx> wrote:
>
> On Mon, 2026-07-13 at 17:46 +0800, Xiubo Li via B4 Relay wrote:
> > From: Xiubo Li <xiubo.li@xxxxxxxxx>
> >
> > __do_request() now acquires mdsc->mutex on entry and unlocks at
> > every exit point, so callers no longer need to hold it. As a
> > result kick_requests() is now completely free of mdsc->mutex:
> > xa_for_each() is internally locked, list_del_init() is guarded by
> > wait_list_lock, and __do_request() manages its own serialization.
> >
> > Remove the no-longer-needed mutex_lock/unlock around __do_request()
> > in ceph_mdsc_submit_request() and handle_forward(). The do_request()
[......]
> > @@ -7088,9 +7095,7 @@ static void mds_peer_reset(struct
> > ceph_connection *con)
> >
> > wake_up_all(&mdsc->session_close_wq);
> >
> > - mutex_lock(&mdsc->mutex);
> > kick_requests(mdsc, s->s_mds);
> > - mutex_unlock(&mdsc->mutex);
> >
> > ceph_put_mds_session(s);
> > break;
>
>
> If I am not wrong, we still have comment [1]:
>
> /*
> * called under mdsc->mutex
> */
> static void __wake_requests(struct ceph_mds_client *mdsc,
> struct list_head *head)
>
Good catch. I will remove that comment. Thanks Slava.
Xiubo Li
> Thanks,
> Slava.
>
> [1]
> https://elixir.bootlin.com/linux/v7.2-rc3/source/fs/ceph/mds_client.c#L3793