• Chao Yu's avatar
    f2fs: fix to recover inode->i_flags of inode block during POR · ce435543
    Chao Yu authored
    [ Upstream commit 0c093b59
    
     ]
    
    Testcase to reproduce this bug:
    1. mkfs.f2fs /dev/sdd
    2. mount -t f2fs /dev/sdd /mnt/f2fs
    3. touch /mnt/f2fs/file
    4. sync
    5. chattr +a /mnt/f2fs/file
    6. xfs_io -a /mnt/f2fs/file -c "fsync"
    7. godown /mnt/f2fs
    8. umount /mnt/f2fs
    9. mount -t f2fs /dev/sdd /mnt/f2fs
    10. xfs_io /mnt/f2fs/file
    
    There is no error when opening this file w/o O_APPEND, but actually,
    we expect the correct result should be:
    
    /mnt/f2fs/file: Operation not permitted
    
    The root cause is, in recover_inode(), we recover inode->i_flags more
    than F2FS_I(inode)->i_flags, so fix it.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    ce435543
recovery.c 17.6 KB