• Y
    f2fs: fix an oops in f2fs_is_compressed_page · 29b993c7
    Yu Changchun 提交于
    This patch is to fix a crash:
    
     #3 [ffffb6580689f898] oops_end at ffffffffa2835bc2
     #4 [ffffb6580689f8b8] no_context at ffffffffa28766e7
     #5 [ffffb6580689f920] async_page_fault at ffffffffa320135e
        [exception RIP: f2fs_is_compressed_page+34]
        RIP: ffffffffa2ba83a2  RSP: ffffb6580689f9d8  RFLAGS: 00010213
        RAX: 0000000000000001  RBX: fffffc0f50b34bc0  RCX: 0000000000002122
        RDX: 0000000000002123  RSI: 0000000000000c00  RDI: fffffc0f50b34bc0
        RBP: ffff97e815a40178   R8: 0000000000000000   R9: ffff97e83ffc9000
        R10: 0000000000032300  R11: 0000000000032380  R12: ffffb6580689fa38
        R13: fffffc0f50b34bc0  R14: ffff97e825cbd000  R15: 0000000000000c00
        ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
     #6 [ffffb6580689f9d8] __is_cp_guaranteed at ffffffffa2b7ea98
     #7 [ffffb6580689f9f0] f2fs_submit_page_write at ffffffffa2b81a69
     #8 [ffffb6580689fa30] f2fs_do_write_meta_page at ffffffffa2b99777
     #9 [ffffb6580689fae0] __f2fs_write_meta_page at ffffffffa2b75f1a
     #10 [ffffb6580689fb18] f2fs_sync_meta_pages at ffffffffa2b77466
     #11 [ffffb6580689fc98] do_checkpoint at ffffffffa2b78e46
     #12 [ffffb6580689fd88] f2fs_write_checkpoint at ffffffffa2b79c29
     #13 [ffffb6580689fdd0] f2fs_sync_fs at ffffffffa2b69d95
     #14 [ffffb6580689fe20] sync_filesystem at ffffffffa2ad2574
     #15 [ffffb6580689fe30] generic_shutdown_super at ffffffffa2a9b582
     #16 [ffffb6580689fe48] kill_block_super at ffffffffa2a9b6d1
     #17 [ffffb6580689fe60] kill_f2fs_super at ffffffffa2b6abe1
     #18 [ffffb6580689fea0] deactivate_locked_super at ffffffffa2a9afb6
     #19 [ffffb6580689feb8] cleanup_mnt at ffffffffa2abcad4
     #20 [ffffb6580689fee0] task_work_run at ffffffffa28bca28
     #21 [ffffb6580689ff00] exit_to_usermode_loop at ffffffffa28050b7
     #22 [ffffb6580689ff38] do_syscall_64 at ffffffffa280560e
     #23 [ffffb6580689ff50] entry_SYSCALL_64_after_hwframe at ffffffffa320008c
    
    This occurred when umount f2fs if enable F2FS_FS_COMPRESSION
    with F2FS_IO_TRACE. Fixes it by adding IS_IO_TRACED_PAGE to check
    validity of pid for page_private.
    Signed-off-by: NYu Changchun <yuchangchun1@huawei.com>
    Reviewed-by: NChao Yu <yuchao0@huawei.com>
    Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
    29b993c7
f2fs.h 131.5 KB