rename truncate_and_unlink to safe_unlink

it usually does not truncate any more,
only under "disk full" circumstances and only if there is only one hardlink.
This commit is contained in:
Thomas Waldmann 2022-02-15 19:39:58 +01:00
parent 4a2ab496e0
commit b292e158a6
5 changed files with 11 additions and 11 deletions

View File

@ -26,7 +26,7 @@ from .helpers import yes
from .helpers import remove_surrogates
from .helpers import ProgressIndicatorPercent, ProgressIndicatorMessage
from .helpers import set_ec, EXIT_WARNING
from .helpers import truncate_and_unlink
from .helpers import safe_unlink
from .helpers import msgpack
from .item import ArchiveItem, ChunkListEntry
from .crypto.key import PlaintextKey
@ -774,7 +774,7 @@ class LocalCache(CacheStatsMixin):
filename=bin_to_hex(archive_id) + '.compact') as fd:
chunk_idx.write(fd)
except Exception:
truncate_and_unlink(fn_tmp)
safe_unlink(fn_tmp)
else:
os.rename(fn_tmp, fn)

View File

@ -205,7 +205,7 @@ def secure_erase(path):
os.unlink(path)
def truncate_and_unlink(path):
def safe_unlink(path):
"""
Safely unlink (delete) *path*.

View File

@ -3,7 +3,7 @@ import os
import socket
import uuid
from borg.helpers import truncate_and_unlink
from borg.helpers import safe_unlink
from borg.platformflags import is_win32
"""
@ -212,7 +212,7 @@ class SaveFile:
def __enter__(self):
from .. import platform
try:
truncate_and_unlink(self.tmppath)
safe_unlink(self.tmppath)
except FileNotFoundError:
pass
self.fd = platform.SyncFile(self.tmppath, self.binary)
@ -222,7 +222,7 @@ class SaveFile:
from .. import platform
self.fd.close()
if exc_type is not None:
truncate_and_unlink(self.tmppath)
safe_unlink(self.tmppath)
return
os.replace(self.tmppath, self.path)
platform.sync_dir(os.path.dirname(self.path))

View File

@ -25,7 +25,7 @@ from .helpers import get_limited_unpacker
from .helpers import replace_placeholders
from .helpers import sysinfo
from .helpers import format_file_size
from .helpers import truncate_and_unlink
from .helpers import safe_unlink
from .helpers import prepare_subprocess_env
from .logger import create_logger, setup_logging
from .helpers import msgpack
@ -1150,7 +1150,7 @@ class RepositoryCache(RepositoryNoCache):
fd.write(packed)
except OSError as os_error:
try:
truncate_and_unlink(file)
safe_unlink(file)
except FileNotFoundError:
pass # open() could have failed as well
if os_error.errno == errno.ENOSPC:

View File

@ -18,7 +18,7 @@ from .helpers import Error, ErrorWithTraceback, IntegrityError, format_file_size
from .helpers import Location
from .helpers import ProgressIndicatorPercent
from .helpers import bin_to_hex
from .helpers import secure_erase, truncate_and_unlink
from .helpers import secure_erase, safe_unlink
from .helpers import Manifest
from .helpers import msgpack
from .locking import Lock, LockError, LockErrorT
@ -1342,7 +1342,7 @@ class LoggedIO:
if segment > transaction_id:
if segment in self.fds:
del self.fds[segment]
truncate_and_unlink(filename)
safe_unlink(filename)
count += 1
else:
break
@ -1450,7 +1450,7 @@ class LoggedIO:
if segment in self.fds:
del self.fds[segment]
try:
truncate_and_unlink(self.segment_filename(segment))
safe_unlink(self.segment_filename(segment))
except FileNotFoundError:
pass