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: