Skip to content
  • Jason Hrycay's avatar
    f2fs: move f2fs_balance_fs from truncate to punch_hole · 1127a3d4
    Jason Hrycay authored
    
    
    Move the f2fs_balance_fs out of the truncate_hole function and only
    perform that in punch_hole use case.  The commit:
    
      ed60b1644e7f7e5dd67d21caf7e4425dff05dad0
    
    intended to do this but moved it into truncate_hole to cover more
    cases.  However, a deadlock scenario is possible when deleting an inode
    entry under specific conditions:
    
     f2fs_delete_entry()
         mutex_lock_op(sbi, DENTRY_OPS);
         truncate_hole()
             f2fs_balance_fs()
                 mutex_lock(&sbi->gc_mutex);
                 f2fs_gc()
                     write_checkpoint()
                         block_operations()
                             mutex_lock_op(sbi, DENTRY_OPS);
    
    Lets move it into the punch_hole case to cover the original intent of
    avoiding it during fallocate's expand_inode_data case.
    
    Change-Id: I29f8ea1056b0b88b70ba8652d901b6e8431bb27e
    Signed-off-by: default avatarJason Hrycay <jason.hrycay@motorola.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
    1127a3d4