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 .
pull/245/head
Axel Burri 2018-06-29 12:49:04 +02:00
parent b0d58fd0f1
commit de5004c744
1 changed files with 7 additions and 3 deletions

10
btrbk
View File

@ -5309,6 +5309,11 @@ MAIN:
WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt";
next; 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}) { if($svol->{node}{readonly}) {
ABORTED($svol, "subvolume is readonly"); ABORTED($svol, "subvolume is readonly");
WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt";
@ -5319,9 +5324,8 @@ MAIN:
WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt"; WARN "Skipping subvolume \"$svol->{PRINT}\": $abrt";
next; next;
} }
if($svol->{node}{uuid} && if(_is_child_of($sroot->{node}, $svol->{node}{uuid}) ||
(_is_child_of($sroot->{node}, $svol->{node}{uuid}) || ($svol->{node}{uuid} eq $sroot->{node}{uuid}))
($svol->{node}{uuid} eq $sroot->{node}{uuid})))
{ {
DEBUG "Found \"$svol->{PRINT}\" (id=$svol->{node}{id}) in btrfs tree of: $sroot->{PRINT}"; DEBUG "Found \"$svol->{PRINT}\" (id=$svol->{node}{id}) in btrfs tree of: $sroot->{PRINT}";
} else { } else {