• Chao Yu's avatar
    f2fs: fix to adapt small inline xattr space in __find_inline_xattr() · 2c28aba8
    Chao Yu authored
    With below testcase, we will fail to find existed xattr entry:
    
    1. mkfs.f2fs -O extra_attr -O flexible_inline_xattr /dev/zram0
    2. mount -t f2fs -o inline_xattr_size=1 /dev/zram0 /mnt/f2fs/
    3. touch /mnt/f2fs/file
    4. setfattr -n "user.name" -v 0 /mnt/f2fs/file
    5. getfattr -n "user.name" /mnt/f2fs/file
    
    /mnt/f2fs/file: user.name: No such attribute
    
    The reason is for inode which has very small inline xattr size,
    __find_inline_xattr() will fail to traverse any entry due to first
    entry may not be loaded from xattr node yet, later, we may skip to
    check entire xattr datas in __find_xattr(), result in such wrong
    condition.
    
    This patch adds condition to check such case to avoid this issue.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    2c28aba8
xattr.c 17.6 KB