Re: [PATCH] ext4: Avoid deadlock in fs reclaim with page writeback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxx>



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux