From: Chao Yu <yuch...@huawei.com>

Shouldn't update in-memory i_atime with on-disk i_mtime of inode when
recovering inode.

Shuoran found this bug which is hidden for a long time, honour is belong
to him.

Signed-off-by: Shuoran Liu <liushuo...@huawei.com>
Signed-off-by: Chao Yu <yuch...@huawei.com>
---
 fs/f2fs/recovery.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index 2fc84a9..d2ba4da 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -180,10 +180,10 @@ static void recover_inode(struct inode *inode, struct 
page *page)
 
        inode->i_mode = le16_to_cpu(raw->i_mode);
        f2fs_i_size_write(inode, le64_to_cpu(raw->i_size));
-       inode->i_atime.tv_sec = le64_to_cpu(raw->i_mtime);
+       inode->i_atime.tv_sec = le64_to_cpu(raw->i_atime);
        inode->i_ctime.tv_sec = le64_to_cpu(raw->i_ctime);
        inode->i_mtime.tv_sec = le64_to_cpu(raw->i_mtime);
-       inode->i_atime.tv_nsec = le32_to_cpu(raw->i_mtime_nsec);
+       inode->i_atime.tv_nsec = le32_to_cpu(raw->i_atime_nsec);
        inode->i_ctime.tv_nsec = le32_to_cpu(raw->i_ctime_nsec);
        inode->i_mtime.tv_nsec = le32_to_cpu(raw->i_mtime_nsec);
 
-- 
2.10.1

Reply via email to