• Jaegeuk Kim's avatar
    f2fs: fix scheduling while atomic in decompression path · 1aa161e4
    Jaegeuk Kim authored
    [   16.945668][    C0] Call trace:
    [   16.945678][    C0]  dump_backtrace+0x110/0x204
    [   16.945706][    C0]  dump_stack_lvl+0x84/0xbc
    [   16.945735][    C0]  __schedule_bug+0xb8/0x1ac
    [   16.945756][    C0]  __schedule+0x724/0xbdc
    [   16.945778][    C0]  schedule+0x154/0x258
    [   16.945793][    C0]  bit_wait_io+0x48/0xa4
    [   16.945808][    C0]  out_of_line_wait_on_bit+0x114/0x198
    [   16.945824][    C0]  __sync_dirty_buffer+0x1f8/0x2e8
    [   16.945853][    C0]  __f2fs_commit_super+0x140/0x1f4
    [   16.945881][    C0]  f2fs_commit_super+0x110/0x28c
    [   16.945898][    C0]  f2fs_handle_error+0x1f4/0x2f4
    [   16.945917][    C0]  f2fs_decompress_cluster+0xc4/0x450
    [   16.945942][    C0]  f2fs_end_read_compressed_page+0xc0/0xfc
    [   16.945959][    C0]  f2fs_handle_step_decompress+0x118/0x1cc
    [   16.945978][    C0]  f2fs_read_end_io+0x168/0x2b0
    [   16.945993][    C0]  bio_endio+0x25c/0x2c8
    [   16.946015][    C0]  dm_io_dec_pending+0x3e8/0x57c
    [   16.946052][    C0]  clone_endio+0x134/0x254
    [   16.946069][    C0]  bio_endio+0x25c/0x2c8
    [   16.946084][    C0]  blk_update_request+0x1d4/0x478
    [   16.946103][    C0]  scsi_end_request+0x38/0x4cc
    [   16.946129][    C0]  scsi_io_completion+0x94/0x184
    [   16.946147][    C0]  scsi_finish_command+0xe8/0x154
    [   16.946164][    C0]  scsi_complete+0x90/0x1d8
    [   16.946181][    C0]  blk_done_softirq+0xa4/0x11c
    [   16.946198][    C0]  _stext+0x184/0x614
    [   16.946214][    C0]  __irq_exit_rcu+0x78/0x144
    [   16.946234][    C0]  handle_domain_irq+0xd4/0x154
    [   16.946260][    C0]  gic_handle_irq.33881+0x5c/0x27c
    [   16.946281][    C0]  call_on_irq_stack+0x40/0x70
    [   16.946298][    C0]  do_interrupt_handler+0x48/0xa4
    [   16.946313][    C0]  el1_interrupt+0x38/0x68
    [   16.946346][    C0]  el1h_64_irq_handler+0x20/0x30
    [   16.946362][    C0]  el1h_64_irq+0x78/0x7c
    [   16.946377][    C0]  finish_task_switch+0xc8/0x3d8
    [   16.946394][    C0]  __schedule+0x600/0xbdc
    [   16.946408][    C0]  preempt_schedule_common+0x34/0x5c
    [   16.946423][    C0]  preempt_schedule+0x44/0x48
    [   16.946438][    C0]  process_one_work+0x30c/0x550
    [   16.946456][    C0]  worker_thread+0x414/0x8bc
    [   16.946472][    C0]  kthread+0x16c/0x1e0
    [   16.946486][    C0]  ret_from_fork+0x10/0x20
    
    Fixes: bff139b4 ("f2fs: handle decompress only post processing in softirq")
    Fixes: 95fa90c9 ("f2fs: support recording errors into superblock")
    Reviewed-by: default avatarChao Yu <chao@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    1aa161e4
super.c 125 KB