• Jaegeuk Kim's avatar
    f2fs: fix deadlock to grab 0'th data page · 764d2c80
    Jaegeuk Kim authored
    
    
    The scenario is like this.
    
    One trhead triggers:
      f2fs_write_data_pages
        lock_page
        f2fs_write_data_page
          f2fs_lock_op  <- wait
    
    The other thread triggers:
      f2fs_truncate
        truncate_blocks
          f2fs_lock_op
            truncate_partial_data_page
              lock_page  <- wait for locking the page
    
    This patch resolves this bug by relocating truncate_partial_data_page.
    This function is just to truncate user data page and not related to FS
    consistency as well.
    And, we don't need to call truncate_inline_data. Rather than that,
    f2fs_write_data_page will finally update inline_data later.
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    764d2c80
file.c 23.2 KB