- my ($ve) = @_;
- die "No VE record for snapshot" if (!defined($ve));
-
- my ($dev, $lvmpath, $vg, $lv) = getDevice($ve->{'private'});
- #print "snapshot: dev=$dev, lvmpath=$lvmpath, vg=$vg, lm=$lv\n";
- die "Can't find device for VE filesystem" if (!defined($dev));
-
- my $snaproot = "/$vzsnap";
-
- mkpath "$snaproot" ||
- die "Can't create snapshot directory (backup in progress?)";
- $ve->{'snaproot'} = $snaproot;
-
- my $snapdev = "/dev/$vg/$vzsnap";
- die "Snapshot dev $snapdev exists (backup in progress?)" if (-b $snapdev);
- # FIXME: xfs_freeze hangs; without it we are likely to fail at some point.
- # FIXME: finding the mount point instead of hard coding.
- #cmdSystemOrEval("xfs_freeze -f /var/lib/vz/private");
- cmdSystemOrEval("lvcreate --size $snapsize --snapshot --name $vzsnap /dev/$vg/$lv >/dev/null 2>&1");
- #cmdSystemOrEval("xfs_freeze -u /var/lib/vz/private");
- if (! -b $snapdev) {
- delSnapshot($ve);
- die "Failed to create snapshot device"
- }
- $ve->{'snapdev'} = $snapdev;
- cmdSystemOrEval("mount -o nouuid $snapdev $snaproot");
-
- my $snapprivate = $ve->{'private'};
- $snapprivate =~ s|/?$lvmpath/?|/$vzsnap/|;
- #print "snapshot: snapprivate = $snapprivate\n";
- if ($snapprivate !~ /$vzsnap/ || ! -d $snapprivate) {
- delSnapshot($ve);
- die "Wrong lvm mount point $lvmpath";
- }
- $ve->{'snapprivate'} = $snapprivate;
-
- if (! -d "/$snapprivate/etc") {
- delSnapshot($ve);
- die "Mount failure or filesystem doesn't belong to a VE";
- }
+ my ($ve) = @_;
+ die "No VE record for snapshot" if (!defined($ve));
+
+ my ($dev, $lvmpath, $vg, $lv) = getDevice($ve->{'private'});
+ #print "snapshot: dev=$dev, lvmpath=$lvmpath, vg=$vg, lm=$lv\n";
+ die "Can't find device for VE filesystem" if (!defined($dev));
+
+ my $snaproot = "/$vzsnap";
+
+ mkpath "$snaproot" ||
+ die "Can't create snapshot directory (backup in progress?)";
+ $ve->{'snaproot'} = $snaproot;
+
+ my $snapdev = "/dev/$vg/$vzsnap";
+ die "Snapshot dev $snapdev exists (backup in progress?)" if (-b $snapdev);
+ # FIXME: xfs_freeze hangs; without it we are likely to fail at some point.
+ # FIXME: finding the mount point instead of hard coding.
+ #cmdSystemOrEval("xfs_freeze -f /var/lib/vz/private");
+ cmdSystemOrEval("lvcreate --size $snapsize --snapshot --name $vzsnap /dev/$vg/$lv >/dev/null 2>&1");
+ #cmdSystemOrEval("xfs_freeze -u /var/lib/vz/private");
+ if (! -b $snapdev) {
+ delSnapshot($ve);
+ die "Failed to create snapshot device"
+ }
+ $ve->{'snapdev'} = $snapdev;
+ cmdSystemOrEval("mount -o nouuid $snapdev $snaproot");
+
+ my $snapprivate = $ve->{'private'};
+ $snapprivate =~ s|/?$lvmpath/?|/$vzsnap/|;
+ #print "snapshot: snapprivate = $snapprivate\n";
+ if ($snapprivate !~ /$vzsnap/ || ! -d $snapprivate) {
+ delSnapshot($ve);
+ die "Wrong lvm mount point $lvmpath";
+ }
+ $ve->{'snapprivate'} = $snapprivate;
+
+ if (! -d "/$snapprivate/etc") {
+ delSnapshot($ve);
+ die "Mount failure or filesystem doesn't belong to a VE";
+ }