[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <TYCP286MB23230E29CC81F5C0590C59C9CAD39@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM>
Date: Mon, 30 Jan 2023 22:16:37 +0800
From: Dawei Li <set_pte_at@...look.com>
To: Sergey Senozhatsky <senozhatsky@...omium.org>
Cc: linkinjeon@...nel.org, sfrench@...ba.org, tom@...pey.com,
hyc.lee@...il.com, linux-cifs@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/6] ksmbd: replace rwlock with rcu for concurrenct
access on conn list
Hi Sergey,
Thanks for reviewing,
On Mon, Jan 30, 2023 at 01:15:35PM +0900, Sergey Senozhatsky wrote:
> On (23/01/15 18:32), Dawei Li wrote:
> >
> > void ksmbd_conn_free(struct ksmbd_conn *conn)
> > {
> > - write_lock(&conn_list_lock);
> > - list_del(&conn->conns_list);
> > - write_unlock(&conn_list_lock);
> > + spin_lock(&conn_list_lock);
> > + list_del_rcu(&conn->conns_list);
> > + spin_unlock(&conn_list_lock);
synchronize_rcu();
> >
> > xa_destroy(&conn->sessions);
> > kvfree(conn->request_buf);
>
> From a quick look this does not seem like a correct RCU usage. E.g.
> where do you wait for grace periods and synchronize readers/writers?
Nice catch, I totally mess it up. Thanks!
At first glance, I assume synchronize_rcu() will do the job if sleeping
is OK?
Steve, Namjae,
Please drop this buggy patch from ksmbd-for-next.
Thanks,
Dawei
Powered by blists - more mailing lists