summarylogtreecommitdiffstats
path: root/btrfs_remove_filesystem_snapshot
diff options
context:
space:
mode:
Diffstat (limited to 'btrfs_remove_filesystem_snapshot')
-rw-r--r--btrfs_remove_filesystem_snapshot35
1 files changed, 35 insertions, 0 deletions
diff --git a/btrfs_remove_filesystem_snapshot b/btrfs_remove_filesystem_snapshot
new file mode 100644
index 000000000000..e3377ca47439
--- /dev/null
+++ b/btrfs_remove_filesystem_snapshot
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+set -e
+
+SNAP_ID=$1
+SNAP_MOUNTPOINT="$2"
+SNAP_NAME="$3"
+SNAP_DEST="$4"
+SNAP_ORIG_PATH="$5"
+
+if ! test -e $SNAP_MOUNTPOINT
+then
+ echo "Snapshot at $SNAP_MOUNTPOINT was already removed"
+ exit 0
+fi
+
+TYPE=$(df -T -P | egrep " ${SNAP_MOUNTPOINT}\$" | tr -s " " | cut -d" " -f2)
+
+if [[ $TYPE == "" ]]
+then
+ if btrfs subvolume list -o "$SNAP_MOUNTPOINT" > /dev/null 2>&1
+ then
+ TYPE="btrfs"
+ fi
+fi
+
+if [[ $TYPE == "btrfs" ]]
+then
+ btrfs subvolume delete "$SNAP_MOUNTPOINT"
+else
+ echo "Cannot remove snapshot at $SNAP_MOUNTPOINT. File system type $TYPE not supported."
+ exit 1
+fi
+
+exit 0 \ No newline at end of file