lkml.org 
[lkml]   [2018]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 58/73] f2fs: fix to recover inode's i_flags during POR
    Date
    From: Chao Yu <yuchao0@huawei.com>

    [ Upstream commit 19c73a691ccf6fb2f12d4e9cf9830023966cec88 ]

    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 -f /mnt/f2fs/file -c "fsync"
    7. godown /mnt/f2fs
    8. umount /mnt/f2fs
    9. mount -t f2fs /dev/sdd /mnt/f2fs
    10. lsattr /mnt/f2fs/file

    -----------------N- /mnt/f2fs/file

    But actually, we expect the corrct result is:

    -------A---------N- /mnt/f2fs/file

    The reason is we didn't recover inode.i_flags field during mount,
    fix it.

    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/f2fs/recovery.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
    index 9626758bc762..765fadf954af 100644
    --- a/fs/f2fs/recovery.c
    +++ b/fs/f2fs/recovery.c
    @@ -210,6 +210,7 @@ static void recover_inode(struct inode *inode, struct page *page)
    inode->i_mtime.tv_nsec = le32_to_cpu(raw->i_mtime_nsec);

    F2FS_I(inode)->i_advise = raw->i_advise;
    + F2FS_I(inode)->i_flags = le32_to_cpu(raw->i_flags);

    if (file_enc_name(inode))
    name = "<encrypted>";
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-11-01 00:24    [W:4.115 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site