• Daeho Jeong's avatar
    f2fs: finish previous checkpoints before returning from remount · 1e7bef5f
    Daeho Jeong authored
    Flush remaining checkpoint requests at the end of remount, since a new
    checkpoint would be triggered while remount and we need to take care of
    it before returning from remount, in order to avoid the below race
    condition.
    
      - Thread                          - checkpoint thread
      do_remount()
       down_write(&sb->s_umount);
       f2fs_remount()
        f2fs_disable_checkpoint(sbi) -> add checkpoints to the list
                                        block_operations()
                                         down_read_trylock(&sb->s_umount) = 0
       up_write(&sb->s_umount);
                                         f2fs_quota_sync()
                                          dquot_writeback_dquots()
                                           WARN_ON_ONCE(!rwsem_is_locked(&sb->s_umount));
    Signed-off-by: default avatarDaeho Jeong <daehojeong@google.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    1e7bef5f
super.c 132 KB