Re: [PATCH 5.15.y] ocfs2: fix deadlock in ocfs2_get_system_file_inode

Greg KH
2025-07-12T13:46:02Z

On Mon, Jun 30, 2025 at 02:05:42PM +0530, Pranav Tyagi wrote:
> From: Mohammed Anees <pvmohammedanees2003@gmail.com>
>
> [ Upstream commit 7bf1823e010e8db2fb649c790bd1b449a75f52d8 ]
>
> syzbot has found a possible deadlock in ocfs2_get_system_file_inode [1].
>
> The scenario is depicted here,
>
> CPU0 CPU1
> lock(&ocfs2_file_ip_alloc_sem_key);
> lock(&osb->system_file_mutex);
> lock(&ocfs2_file_ip_alloc_sem_key);
> lock(&osb->system_file_mutex);
>
> The function calls which could lead to this are:
>
> CPU0
> ocfs2_mknod - lock(&ocfs2_file_ip_alloc_sem_key);
> .
> .
> .
> ocfs2_get_system_file_inode - lock(&osb->system_file_mutex);
>
> CPU1 -
> ocfs2_fill_super - lock(&osb->system_file_mutex);
> .
> .
> .
> ocfs2_read_virt_blocks - lock(&ocfs2_file_ip_alloc_sem_key);
>
> This issue can be resolved by making the down_read -> down_read_try
> in the ocfs2_read_virt_blocks.
>
> [1] https://syzkaller.appspot.com/bug?extid=e0055ea09f1f5e6fabdd
>
> [ Backport to 5.15: context cleanly applied with no semantic changes.
> Build-tested. ]

We can't take a 5.15.y version, without it being in 6.1.y first, sorry
:(