mirror of
https://github.com/torvalds/linux.git
synced 2026-09-26 10:02:02 +02:00
ext4: set EXT4_STATE_NO_EXPAND in ext4_evict_inode
An inode being evicted will never need its extra isize expanded. Set EXT4_STATE_NO_EXPAND before ext4_mark_inode_dirty() in ext4_evict_inode() to make this explicit and prevent any unnecessary work in ext4_try_to_expand_extra_isize(). This also provides defense-in-depth for the s_writepages_rwsem deadlock during mount-time orphan cleanup, ensuring the expand path is blocked for inodes under eviction regardless of how they are reached. Signed-off-by: Yun Zhou <yun.zhou@windriver.com> Reviewed-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/20260623061903.2148767-2-yun.zhou@windriver.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
7461c60b9c
commit
2c0e4fb511
|
|
@ -264,6 +264,7 @@ void ext4_evict_inode(struct inode *inode)
|
|||
if (ext4_inode_is_fast_symlink(inode))
|
||||
memset(EXT4_I(inode)->i_data, 0, sizeof(EXT4_I(inode)->i_data));
|
||||
inode->i_size = 0;
|
||||
ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
|
||||
err = ext4_mark_inode_dirty(handle, inode);
|
||||
if (err) {
|
||||
ext4_warning(inode->i_sb,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user