aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/f2fs/data.c6
-rw-r--r--fs/f2fs/super.c2
-rw-r--r--fs/f2fs/sysfs.c2
3 files changed, 6 insertions, 4 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index b4b944224..2799fc3b9 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2120,12 +2120,14 @@ static ssize_t f2fs_direct_IO(int rw, struct kiocb *iocb,
return err;
}
-void f2fs_invalidate_page(struct page *page, unsigned long offset)
+void f2fs_invalidate_page(struct page *page, unsigned int offset,
+ unsigned int length)
{
struct inode *inode = page->mapping->host;
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
- if (inode->i_ino >= F2FS_ROOT_INO(sbi) && (offset % PAGE_SIZE))
+ if (inode->i_ino >= F2FS_ROOT_INO(sbi) &&
+ (offset % PAGE_SIZE || length != PAGE_SIZE))
return;
if (PageDirty(page)) {
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 82044783d..197de5434 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -2580,7 +2580,7 @@ free_meta:
* followed by write_checkpoint() through f2fs_write_node_pages(), which
* falls into an infinite loop in sync_meta_pages().
*/
- truncate_inode_pages_final(META_MAPPING(sbi), 0);
+ truncate_inode_pages_final(META_MAPPING(sbi));
free_sysfs:
f2fs_unregister_sysfs(sbi);
free_root_inode:
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index 06fda7cc7..6269e54a2 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -436,7 +436,7 @@ static int iostat_info_seq_show(struct seq_file *seq, void *offset)
{
struct super_block *sb = seq->private;
struct f2fs_sb_info *sbi = F2FS_SB(sb);
- time64_t now = get_seconds();
+ __s64 now = get_seconds();
if (!sbi->iostat_enable)
return 0;