[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <168395396132.1443054.4355645347214924381.b4-ty@mit.edu>
Date: Sat, 13 May 2023 00:59:27 -0400
From: "Theodore Ts'o" <tytso@....edu>
To: Jan Kara <jack@...e.cz>
Cc: "Theodore Ts'o" <tytso@....edu>, linux-ext4@...r.kernel.org,
syzbot+6898da502aef574c5f8a@...kaller.appspotmail.com,
stable@...r.kernel.org
Subject: Re: [PATCH] ext4: Avoid deadlock in fs reclaim with page writeback
On Thu, 04 May 2023 14:47:23 +0200, Jan Kara wrote:
> Ext4 has a filesystem wide lock protecting ext4_writepages() calls to
> avoid races with switching of journalled data flag or inode format. This
> lock can however cause a deadlock like:
>
> CPU0 CPU1
>
> ext4_writepages()
> percpu_down_read(sbi->s_writepages_rwsem);
> ext4_change_inode_journal_flag()
> percpu_down_write(sbi->s_writepages_rwsem);
> - blocks, all readers block from now on
> ext4_do_writepages()
> ext4_init_io_end()
> kmem_cache_zalloc(io_end_cachep, GFP_KERNEL)
> fs_reclaim frees dentry...
> dentry_unlink_inode()
> iput() - last ref =>
> iput_final() - inode dirty =>
> write_inode_now()...
> ext4_writepages() tries to acquire sbi->s_writepages_rwsem
> and blocks forever
>
> [...]
Applied, thanks!
[1/1] ext4: Avoid deadlock in fs reclaim with page writeback
commit: 568e5b263e8bf81ffb575686f980bd18fdb7428f
Best regards,
--
Theodore Ts'o <tytso@....edu>
Powered by blists - more mailing lists