def fast_deduplication_backup(self, old_backup_entry, process_bar):
<EOL>src_path = self.dir_path.resolved_path<EOL>log.debug("<STR_LIT>", src_path)<EOL>old_file_path = old_backup_entry.get_backup_path()<EOL>if not self.path_helper.abs_dst_path.is_dir():<EOL><INDENT>try:<EOL><INDENT>self.path_helper.abs_dst_path.makedirs(mode=phlb_config.default_new_path_mode)<EOL><DEDENT>except OSError as err:<EOL><INDENT>raise BackupFileError("<STR_LIT>" % err)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>assert not self.path_helper.abs_dst_filepath.is_file(), (<EOL>"<STR_LIT>" % self.path_helper.abs_src_filepath<EOL>)<EOL><DEDENT>with self.path_helper.abs_dst_hash_filepath.open("<STR_LIT:w>") as hash_file:<EOL><INDENT>try:<EOL><INDENT>old_file_path.link(self.path_helper.abs_dst_filepath)  <EOL><DEDENT>except OSError as err:<EOL><INDENT>log.error("<STR_LIT>" % (old_file_path, self.path_helper.abs_dst_filepath, err))<EOL>log.info("<STR_LIT>", old_backup_entry)<EOL>old_backup_entry.no_link_source = True<EOL>old_backup_entry.save()<EOL>self.deduplication_backup(process_bar)<EOL>return<EOL><DEDENT>hash_hexdigest = old_backup_entry.content_info.hash_hexdigest<EOL>hash_file.write(hash_hexdigest)<EOL><DEDENT>file_size = self.dir_path.stat.st_size<EOL>if file_size > <NUM_LIT:0>:<EOL><INDENT>process_bar.update(file_size)<EOL><DEDENT>BackupEntry.objects.create(<EOL>backup_run=self.backup_run,<EOL>backup_entry_path=self.path_helper.abs_dst_filepath,<EOL>hash_hexdigest=hash_hexdigest,<EOL>)<EOL>if self._SIMULATE_SLOW_SPEED:<EOL><INDENT>log.error("<STR_LIT>")<EOL>time.sleep(self._SIMULATE_SLOW_SPEED)<EOL><DEDENT>self.fast_backup = True  <EOL>self.file_linked = True<EOL>
We can just link a old backup entry

:param latest_backup: old BackupEntry model instance
:param process_bar: tqdm process bar