• Chao Yu's avatar
    f2fs: fix return value of f2fs_convert_inline_inode() · a8eb3de2
    Chao Yu authored
    If device is readonly, make f2fs_convert_inline_inode()
    return EROFS instead of zero, otherwise it may trigger
    panic during writeback of inline inode's dirty page as
    below:
    
     f2fs_write_single_data_page+0xbb6/0x1e90 fs/f2fs/data.c:2888
     f2fs_write_cache_pages fs/f2fs/data.c:3187 [inline]
     __f2fs_write_data_pages fs/f2fs/data.c:3342 [inline]
     f2fs_write_data_pages+0x1efe/0x3a90 fs/f2fs/data.c:3369
     do_writepages+0x359/0x870 mm/page-writeback.c:2634
     filemap_fdatawrite_wbc+0x125/0x180 mm/filemap.c:397
     __filemap_fdatawrite_range mm/filemap.c:430 [inline]
     file_write_and_wait_range+0x1aa/0x290 mm/filemap.c:788
     f2fs_do_sync_file+0x68a/0x1ae0 fs/f2fs/file.c:276
     generic_write_sync include/linux/fs.h:2806 [inline]
     f2fs_file_write_iter+0x7bd/0x24e0 fs/f2fs/file.c:4977
     call_write_iter include/linux/fs.h:2114 [inline]
     new_sync_write fs/read_write.c:497 [inline]
     vfs_write+0xa72/0xc90 fs/read_write.c:590
     ksys_write+0x1a0/0x2c0 fs/read_write.c:643
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+848062ba19c8782ca5c8@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/linux-f2fs-devel/000000000000d103ce06174d7ec3@google.comSigned-off-by: default avatarChao Yu <chao@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    a8eb3de2
inline.c 19.4 KB