From f6542effc57916e99451efd9edc27391c8d0306a Mon Sep 17 00:00:00 2001 From: Rusty Bird Date: Fri, 16 Feb 2018 21:47:36 +0000 Subject: [PATCH] lvm_thin: _remove_revisions() on revisions_to_keep==0 If revisions_to_keep is 0, it may nevertheless have been > 0 before, so it makes sense to call _remove_revisions() and hold back none (not all) of the revisions in this case. --- qubes/storage/lvm.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qubes/storage/lvm.py b/qubes/storage/lvm.py index bec33ee1..641b1bcd 100644 --- a/qubes/storage/lvm.py +++ b/qubes/storage/lvm.py @@ -262,7 +262,8 @@ class ThinVolume(qubes.storage.Volume): if revisions is None: revisions = sorted(self.revisions.items(), key=operator.itemgetter(1)) - revisions = revisions[:-self.revisions_to_keep] + # pylint: disable=invalid-unary-operand-type + revisions = revisions[:(-self.revisions_to_keep) or None] revisions = [rev_id for rev_id, _ in revisions] for rev_id in revisions: @@ -287,7 +288,7 @@ class ThinVolume(qubes.storage.Volume): '{}-{}-back'.format(self.vid, int(time.time()))] qubes_lvm(cmd, self.log) reset_cache() - self._remove_revisions() + self._remove_revisions() # TODO: when converting this function to coroutine, this _must_ be # under a lock