diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index ceee69a66482b..b630e56815bb5 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -1905,8 +1905,12 @@ int ext4_inline_data_truncate(struct inode *inode, int *has_inline) * the extent status cache must be cleared to avoid leaving * behind stale delayed allocated extent entries */ - if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) - ext4_es_remove_extent(inode, 0, EXT_MAX_BLOCKS); + if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) { + ext4_lblk_t lblk = EXT4_B_TO_LBLK(inode, i_size); + + ext4_es_remove_extent(inode, lblk, + EXT_MAX_BLOCKS - lblk); + } /* Clear the content in the xattr space. */ if (inline_size > EXT4_MIN_INLINE_DATA_SIZE) {