From de5004c74485a05b75ddf1409a32fb0969ba68d4 Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Fri, 29 Jun 2018 12:49:04 +0200 Subject: [PATCH] btrbk: abort subvolume if it is btrfs root (id=5) Btrfs root subvolume (id=5) have no UUID and cannot be backed up. Abort if "subvolume ." is configured on btrfs root, e.g.: volume /path/to/btrfs_root subvolume . --- btrbk | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/btrbk b/btrbk index 92125de..5bdd36c 100755 --- a/btrbk +++ b/btrbk @@ -5309,6 +5309,11 @@ MAIN: WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; next; } + if((not $svol->{node}{uuid}) || ($svol->{node}{uuid} eq '-')) { + ABORTED($svol, "subvolume has no UUID"); + ERROR "Skipping subvolume \"$svol->{PRINT}\": $abrt"; + next; + } if($svol->{node}{readonly}) { ABORTED($svol, "subvolume is readonly"); WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; @@ -5319,9 +5324,8 @@ MAIN: WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; next; } - if($svol->{node}{uuid} && - (_is_child_of($sroot->{node}, $svol->{node}{uuid}) || - ($svol->{node}{uuid} eq $sroot->{node}{uuid}))) + if(_is_child_of($sroot->{node}, $svol->{node}{uuid}) || + ($svol->{node}{uuid} eq $sroot->{node}{uuid})) { DEBUG "Found \"$svol->{PRINT}\" (id=$svol->{node}{id}) in btrfs tree of: $sroot->{PRINT}"; } else {