Description
In the Linux kernel, the following vulnerability has been resolved: ext4: avoid deadlock in fs reclaim with page writeback 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 Make sure we cannot recurse into filesystem reclaim from writeback code to avoid the deadlock.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
c8585c6fcaf2011de54c3592e80a634a2b9e1a7f to < 385b49a1f34b26f62e3834c773560b120825b6f8affectedc8585c6fcaf2011de54c3592e80a634a2b9e1a7f to < 2ec97dc90df40c50e509809dc9a198638a7e18b6affectedc8585c6fcaf2011de54c3592e80a634a2b9e1a7f to < 4b4340bf04ce9a52061f15000ecedd126abc093caffectedc8585c6fcaf2011de54c3592e80a634a2b9e1a7f to < 00d873c17e29cc32d90ca852b82685f1673acaa5affected
Linux Linux
Default version status: affected
4.7affected0 to < 4.7unaffected6.1.191 to ≤ 6.1.*unaffected6.2.16 to ≤ 6.2.*unaffected6.3.3 to ≤ 6.3.*unaffected6.4 to ≤ *unaffected