From fa36368c35cef8f38d2658b3089d0ede8ac9862b Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Wed, 21 Apr 2021 08:48:35 +0200 Subject: [PATCH] Use path length in space allocation --- secondary.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/secondary.py b/secondary.py index 8a43dbe..8e9714b 100644 --- a/secondary.py +++ b/secondary.py @@ -74,7 +74,7 @@ class Backup: cwd = os.path.join(self.mount, self.path) reader = tar_stream.TarReader(self.primary_out) for e in reader: - self.make_room(e.size) + self.make_room(e.size, e.path) e.tarfile.extract(e, path=cwd) pass @@ -117,15 +117,17 @@ class Backup: else: self.status.unchanged += 1 - def make_room(self, size): - def get_free_need(size): + def make_room(self, size, path=None): + def get_free_need(size, path): stat = os.statvfs(self.dst_root) free = stat.f_frsize * stat.f_bavail need = size + stat.f_frsize + if path: + need += stat.f_frsize * len(path.split('/')) return (free, need) do_log = False while True: - free,need = get_free_need(size) + free,need = get_free_need(size, path) if do_log: self.log.MESSAGE("After, free=%d, need=%d" % (free, need)) pass -- GitLab