Re: [PATCH] eventfs: Test for ei->is_freed when accessing ei->dentry
From: Naresh Kamboju <hidden>
Date: 2023-10-29 05:22:59
Also in:
lkml
On Sun, 29 Oct 2023 at 02:07, Steven Rostedt [off-list ref] wrote:
From: "Steven Rostedt (Google)" <rostedt@goodmis.org> The eventfs_inode (ei) is protected by SRCU, but the ei->dentry is not. It is protected by the eventfs_mutex. Anytime the eventfs_mutex is released, and access to the ei->dentry needs to be done, it should first check if ei->is_freed is set under the eventfs_mutex. If it is, then the ei->dentry is invalid and must not be used. The ei->dentry must only be accessed under the eventfs_mutex and after checking if ei->is_freed is set. When the ei is being freed, it will (under the eventfs_mutex) set is_freed and at the same time move the dentry to a free list to be cleared after the eventfs_mutex is released. This means that any access to the ei->dentry must check first if ei->is_freed is set, because if it is, then the dentry is on its way to be freed. Also add comments to describe this better. Link: https://lore.kernel.org/all/CA+G9fYt6pY+tMZEOg=SoEywQOe19fGP3uR15SGowkdK+_X85Cg@mail.gmail.com/ (local) Link: https://lore.kernel.org/all/CA+G9fYuDP3hVQ3t7FfrBAjd_WFVSurMgCepTxunSJf=MTe=6aA@mail.gmail.com/ (local) Fixes: 5790b1fb3d672 ("eventfs: Remove eventfs_file and just use eventfs_inode") Reported-by: Reported-by: Linux Kernel Functional Testing <redacted>
In the above line "Reported-by:" is twice.
Reported-by: Naresh Kamboju <redacted> Reported-by: Beau Belgrave <redacted> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
I am running tests on this patch and will get back to you shortly. - Naresh