Shouldn't it be in this way instead? Note the whole thing looks
somewhat confusing - the comment says "always truncate page 0"
but the code explicitly says "in case of error, truncate page 0".

This seems fixes https://syzkaller.appspot.com/bug?extid=fc026e87558558f75c00.

Signed-off-by: Dmitry Antipov <[email protected]>
---
 fs/f2fs/file.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index d7047ca6b98d..bfc9ff97e4a5 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -910,16 +910,15 @@ int f2fs_truncate(struct inode *inode)
        /* we should check inline_data size */
        if (!f2fs_may_inline_data(inode)) {
                err = f2fs_convert_inline_inode(inode);
-               if (err) {
-                       /*
-                        * Always truncate page #0 to avoid page cache
-                        * leak in evict() path.
-                        */
-                       truncate_inode_pages_range(inode->i_mapping,
-                                       F2FS_BLK_TO_BYTES(0),
-                                       F2FS_BLK_END_BYTES(0));
+               /*
+                * Always truncate page #0 to avoid page cache
+                * leak in evict() path.
+                */
+               truncate_inode_pages_range(inode->i_mapping,
+                                          F2FS_BLK_TO_BYTES(0),
+                                          F2FS_BLK_END_BYTES(0));
+               if (err)
                        return err;
-               }
        }
 
        err = f2fs_truncate_blocks(inode, i_size_read(inode), true);
-- 
2.53.0



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to