kprojid_t i_projid;             /* id for project quota */
        int i_inline_xattr_size;        /* inline xattr size */
        struct timespec i_crtime;       /* inode creation time */
+       struct timespec i_disk_time[4]; /* inode disk times */
 };
 
 static inline void get_extent_info(struct extent_info *ext,
                        i_size_read(inode) & ~PAGE_MASK)
                return false;
 
+       if (!timespec_equal(F2FS_I(inode)->i_disk_time, &inode->i_atime))
+               return false;
+       if (!timespec_equal(F2FS_I(inode)->i_disk_time + 1, &inode->i_ctime))
+               return false;
+       if (!timespec_equal(F2FS_I(inode)->i_disk_time + 2, &inode->i_mtime))
+               return false;
+       if (!timespec_equal(F2FS_I(inode)->i_disk_time + 3,
+                                               &F2FS_I(inode)->i_crtime))
+               return false;
+
        down_read(&F2FS_I(inode)->i_sem);
        ret = F2FS_I(inode)->last_disk_size == i_size_read(inode);
        up_read(&F2FS_I(inode)->i_sem);
 
                fi->i_crtime.tv_nsec = le32_to_cpu(ri->i_crtime_nsec);
        }
 
+       F2FS_I(inode)->i_disk_time[0] = inode->i_atime;
+       F2FS_I(inode)->i_disk_time[1] = inode->i_ctime;
+       F2FS_I(inode)->i_disk_time[2] = inode->i_mtime;
+       F2FS_I(inode)->i_disk_time[3] = F2FS_I(inode)->i_crtime;
        f2fs_put_page(node_page, 1);
 
        stat_inc_inline_xattr(inode);
        if (inode->i_nlink == 0)
                clear_inline_node(node_page);
 
+       F2FS_I(inode)->i_disk_time[0] = inode->i_atime;
+       F2FS_I(inode)->i_disk_time[1] = inode->i_ctime;
+       F2FS_I(inode)->i_disk_time[2] = inode->i_mtime;
+       F2FS_I(inode)->i_disk_time[3] = F2FS_I(inode)->i_crtime;
 }
 
 void update_inode_page(struct inode *inode)