Re: [PATCH] ext2fs: fix fast symlink blocks check

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

 



Andreas,
We actually got a test case f_ea_inode_fast_symlink for this,
Could you share the version with the test case?

Thanks
Dongyang
On Thu, 2025-07-17 at 00:51 -0600, Andreas Dilger wrote:
> Use ext4_inode_is_fast_symlink() in ext2fs_inode_has_valid_blocks2()
> instead of depending exclusively on i_blocks == 0 to determine
> if an inode is a fast symlink. Otherwise, if a fast symlink has a
> large external xattr inode that increases i_blocks, it will be
> incorrectly reported as having invalid blocks.
> 
> Change-Id: Ibde2348da39401601abedd603bd7e4ef97091abe
> Fixes: 0684a4f33 ("Overhaul extended attribute handling")
> Signed-off-by: Andreas Dilger <adilger@xxxxxxxxxxxxx>
> Reviewed-by: Li Dongyang <dongyangli@xxxxxxx>
> Reviewed-on: https://review.whamcloud.com/59871
> Lustre-bug-id: https://jira.whamcloud.com/browse/LU-19121
> ---
>  lib/ext2fs/valid_blk.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/ext2fs/valid_blk.c b/lib/ext2fs/valid_blk.c
> index db5d90ae4..332e9c66a 100644
> --- a/lib/ext2fs/valid_blk.c
> +++ b/lib/ext2fs/valid_blk.c
> @@ -43,6 +43,7 @@ int ext2fs_inode_has_valid_blocks2(ext2_filsys fs,
> struct ext2_inode *inode)
>  			/* With no EA block, we can rely on i_blocks
> */
>  			if (inode->i_blocks == 0)
>  				return 0;
> +			return !ext2fs_is_fast_symlink(inode);
>  		} else {
>  			/* With an EA block, life gets more tricky
> */
>  			if (inode->i_size >= EXT2_N_BLOCKS*4)




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux