From 180130ba4e81ddf5452c7ac5cd4c5354fc2f88e2 Mon Sep 17 00:00:00 2001 From: Mrityunjay Raj Date: Sat, 23 May 2026 13:27:35 +0530 Subject: [PATCH] legacy: move borg1 hardlink helpers to borg.legacy.helpers, refs #9556 --- src/borg/helpers/fs.py | 9 --------- src/borg/legacy/helpers.py | 13 +++++++++++++ src/borg/legacy/upgrade.py | 5 +++-- 3 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 src/borg/legacy/helpers.py diff --git a/src/borg/helpers/fs.py b/src/borg/helpers/fs.py index 7fde44963..cf578ed2a 100644 --- a/src/borg/helpers/fs.py +++ b/src/borg/helpers/fs.py @@ -442,15 +442,6 @@ class HardLinkManager: self.id_type = id_type self.info_type = info_type # can be a single type or a tuple of types - def borg1_hardlinkable(self, mode): # legacy - return stat.S_ISREG(mode) or stat.S_ISBLK(mode) or stat.S_ISCHR(mode) or stat.S_ISFIFO(mode) - - def borg1_hardlink_master(self, item): # legacy - return item.get("hardlink_master", False) and "source" not in item and self.borg1_hardlinkable(item.mode) - - def borg1_hardlink_slave(self, item): # legacy - return "source" in item and self.borg1_hardlinkable(item.mode) - def hardlink_id_from_path(self, path): """compute a hard link id from a path""" assert isinstance(path, str) diff --git a/src/borg/legacy/helpers.py b/src/borg/legacy/helpers.py new file mode 100644 index 000000000..f0cdebf9c --- /dev/null +++ b/src/borg/legacy/helpers.py @@ -0,0 +1,13 @@ +import stat + + +def borg1_hardlinkable(mode): + return stat.S_ISREG(mode) or stat.S_ISBLK(mode) or stat.S_ISCHR(mode) or stat.S_ISFIFO(mode) + + +def borg1_hardlink_master(item): + return item.get("hardlink_master", False) and "source" not in item and borg1_hardlinkable(item.mode) + + +def borg1_hardlink_slave(item): + return "source" in item and borg1_hardlinkable(item.mode) diff --git a/src/borg/legacy/upgrade.py b/src/borg/legacy/upgrade.py index 5ebd91ead..80c3357ee 100644 --- a/src/borg/legacy/upgrade.py +++ b/src/borg/legacy/upgrade.py @@ -6,6 +6,7 @@ from ..compress import ZLIB, ZLIB_legacy, ObfuscateSize from ..helpers import HardLinkManager, join_cmd from ..item import Item from ..logger import create_logger +from .helpers import borg1_hardlink_master, borg1_hardlink_slave logger = create_logger(__name__) @@ -47,10 +48,10 @@ class UpgraderFrom12To20: "acl_extended", } - if self.hlm.borg1_hardlink_master(item): + if borg1_hardlink_master(item): item.hlid = hlid = self.hlm.hardlink_id_from_path(item.path) self.hlm.remember(id=hlid, info=item.get("chunks")) - elif self.hlm.borg1_hardlink_slave(item): + elif borg1_hardlink_slave(item): item.hlid = hlid = self.hlm.hardlink_id_from_path(item.source) chunks = self.hlm.retrieve(id=hlid) if chunks is not None: