[ -z "$DRY_RUN" ] || echo "VOLUME_PATH=$VOLUME_PATH"
# Detect btrfs filesystem
-FS_NAME=$(btrfs filesystem show -m / 2>/dev/null | head -1 | cut -d"'" -f2)
-if [ -z "$FS_NAME" ]; then
- FS_NAME=$(grep " btrfs " /etc/fstab \
- | grep "^LABEL=" \
- | grep " $VOLUME_PATH " \
- | cut -d'"' -f2 \
- | cut -d'=' -f2- \
- | cut -d' ' -f1)
-fi
+FS_NAME=$(btrfs filesystem show -m "$VOLUME_PATH" 2>/dev/null | head -1 | cut -d"'" -f2)
if [ -z "$FS_NAME" ]; then
echo "$NAME: Failed to detect btrfs filesystem label for \"$VOLUME_PATH\"!"
exit 1
[ -z "$DRY_RUN" ] || echo "FS_NAME=$FS_NAME"
# Detect btrfs subvolume name
-VOLUME_NAME=$(grep " btrfs " /etc/fstab \
- | grep "subvol=" \
- | grep " $VOLUME_PATH " \
- | sed -r 's|.*subvol=([^, \t]*).*|\1|')
+VOLUME_NAME=$(findmnt -nf -o source "$VOLUME_PATH" | grep -F '[' | sed -r 's|^.*\[/(.*)\]|\1|')
if [ -z "$VOLUME_NAME" ] && [ "$VOLUME_PATH" = "/" ]; then
VOLUME_NAME=$(btrfs subvolume get-default / | cut -d' ' -f9)
fi
echo "$NAME: Directory \"$FS_MOUNT_PATH\" does not exist!"
exit 1
fi
-if grep " btrfs " /proc/mounts | grep " $FS_MOUNT_PATH " >/dev/null 2>&1; then
+if ! grep -q " $FS_MOUNT_PATH btrfs " /proc/mounts; then
echo "$NAME: btrfs \"$FS_NAME\" seems not to be mounted on \"$FS_MOUNT_PATH\"!"
exit 1
fi