• Chao Yu's avatar
    f2fs: fix error handling in fill_super · bae01eda
    Chao Yu authored
    In fill_super, if we fail to call f2fs_build_stats(), it needs to detach
    from global f2fs shrink list, otherwise once system starts to shrink slab
    cache, we will encounter below panic:
    
    BUG: unable to handle kernel paging request at 00007d35
    Oops: 0002 [#1] PREEMPT SMP
    EIP: __lock_acquire+0x70/0x12c0
    Call Trace:
     lock_acquire+0xae/0x220
     mutex_trylock+0xc5/0xf0
     f2fs_shrink_count+0x32/0xb0 [f2fs]
     shrink_slab+0xf1/0x5b0
     drop_slab_node+0x35/0x60
     drop_slab+0xf/0x20
     drop_caches_sysctl_handler+0x79/0xc0
     proc_sys_call_handler+0xa4/0xc0
     proc_sys_write+0x1f/0x30
     __vfs_write+0x24/0x150
     SyS_write+0x44/0x90
     do_fast_syscall_32+0xa1/0x1ca
     entry_SYSENTER_32+0x4c/0x7b
    
    In addition, this patch relocates f2fs_join_shrinker in fill_super to
    avoid unneeded error handling of it.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    bae01eda
super.c 71.6 KB