Re: [PATCH] f2fs: fix deadlock in f2f2_add_dentry

From: Tetsuo Handa
Date: Wed Sep 06 2023 - 08:56:35 EST


On 2023/08/25 14:37, Lizhi Xu wrote:
> @@ -736,12 +736,12 @@ int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname,
> f2fs_wait_on_page_writeback(dentry_page, DATA, true, true);
>
> if (inode) {
> - f2fs_down_write(&F2FS_I(inode)->i_sem);
> page = f2fs_init_inode_metadata(inode, dir, fname, NULL);
> if (IS_ERR(page)) {
> err = PTR_ERR(page);
> goto fail;
> }
> + f2fs_down_write(&F2FS_I(inode)->i_sem);
> }

Above change does not match below.

fail:
if (inode)
f2fs_up_write(&F2FS_I(inode)->i_sem);

>
> make_dentry_ptr_block(NULL, &d, dentry_blk);