:param dir_path: filesystem_walk.DirEntryPath() instance

def fast_compare(self, dir_path):
        """
        :param dir_path: filesystem_walk.DirEntryPath() instance
        """
        if self.latest_backup is None:
            # No old backup run was found
            return

        if self.latest_mtime_ns is None:
            # No timestamp from old backup run was found
            return

        # There was a completed old backup run
        # Check if we can made a 'fast compare'
        mtime_ns = dir_path.stat.st_mtime_ns
        if mtime_ns > self.latest_mtime_ns:
            # The current source file is newer than
            # the latest file from last completed backup
            log.info("Fast compare: source file is newer than latest backuped file.")
            return

        # Look into database and compare mtime and size

        try:
            old_backup_entry = BackupEntry.objects.get(
                backup_run=self.latest_backup,
                directory__directory=self.path_helper.sub_path,
                filename__filename=self.path_helper.filename,
                no_link_source=False,
            )
        except BackupEntry.DoesNotExist:
            log.debug("No old backup entry found")
            return

        content_info = old_backup_entry.content_info

        file_size = content_info.file_size
        if file_size != dir_path.stat.st_size:
            log.info("Fast compare: File size is different: %i != %i" % (file_size, dir_path.stat.st_size))
            return

        old_backup_filepath = old_backup_entry.get_backup_path()
        try:
            old_file_mtime_ns = old_backup_filepath.stat().st_mtime_ns
        except FileNotFoundError as err:
            log.error("Old backup file not found: %s" % err)
            old_backup_entry.no_link_source = True
            old_backup_entry.save()
            return

        if old_file_mtime_ns != old_backup_entry.file_mtime_ns:
            log.error("ERROR: mtime from database is different to the file!")
            log.error(" * File: %s" % old_backup_filepath)
            log.error(" * Database mtime: %s" % old_backup_entry.file_mtime_ns)
            log.error(" * File mtime: %s" % old_file_mtime_ns)

        if old_file_mtime_ns != dir_path.stat.st_mtime_ns:
            log.info("Fast compare mtime is different between:")
            log.info(" * %s" % old_backup_entry)
            log.info(" * %s" % dir_path)
            log.info(" * mtime: %i != %i" % (old_file_mtime_ns, dir_path.stat.st_mtime_ns))
            return

        # We found a old entry with same size and mtime
        return old_backup_entry