From 005e5c63bef6c6a6431b1384a8a72bbca00e03f5 Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Tue, 26 May 2015 18:09:36 +0200 Subject: [PATCH] btrbk: bugfix: crash if "snapshot_create onchange" is set and no snapshots are present --- btrbk | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/btrbk b/btrbk index d3da66f..2a656cb 100755 --- a/btrbk +++ b/btrbk @@ -1825,12 +1825,17 @@ MAIN: elsif($snapshot_create eq "onchange") { # check if latest snapshot is up-to-date with source subvolume (by generation) my $latest = get_latest_snapshot_child($sroot, $svol); - if($latest && ($latest->{gen} == $svol->{gen})) { - INFO "Snapshot creation skipped: snapshot_create=onchange, snapshot is up-to-date: $latest->{PRINT}"; - $config_subvol->{SNAPSHOT_UP_TO_DATE} = $latest; - next; + if($latest) { + if($latest->{gen} == $svol->{gen}) { + INFO "Snapshot creation skipped: snapshot_create=onchange, snapshot is up-to-date: $latest->{PRINT}"; + $config_subvol->{SNAPSHOT_UP_TO_DATE} = $latest; + next; + } + DEBUG "Snapshot creation enabled: snapshot_create=onchange, gen=$svol->{gen} > snapshot_gen=$latest->{gen}"; + } + else { + DEBUG "Snapshot creation enabled: snapshot_create=onchange, no snapshots found"; } - DEBUG "Snapshot creation enabled: snapshot_create=onchange, gen=$svol->{gen} > snapshot_gen=$latest->{gen}"; } elsif($snapshot_create eq "ondemand") { # check if at least one target is present