e mount $dir
fi
}
+fstab() {
+ while read -r start mpoint end; do
+ l="$start $mpoint $end"
+ # kill off any lines that duplicate the mount point.
+ sed --follow-symlinks -ri "\%$l%b;\%^\s*\S+\s+$mpoint\s%d" /etc/fstab
+ tu /etc/fstab <<<"$l"
+ done
+}
ret=0
##### begin setup fstab for subvols we care about ######
first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab)
-tu /etc/fstab <<EOF
+fstab <<EOF
$first_root_crypt /a btrfs noatime,subvol=a 0 0
EOF
-case $HOSTNAME in
- treetowl|x2|frodo)
- tu /etc/fstab <<EOF
+
+shopt -s nullglob
+
+f=(/mnt/root/btrbk/q.*)
+if [[ -e $f ]]; then
+ fstab <<EOF
$first_root_crypt /q btrfs noatime,subvol=q 0 0
-$first_root_crypt /o btrfs noatime,subvol=o 0 0
/q/p /p none bind 0 0
+EOF
+fi
+
+f=(/mnt/root/btrbk/o.*)
+if [[ -e $f ]]; then
+ fstab <<EOF
+$first_root_crypt /o btrfs noatime,subvol=o 0 0
/o/m /m none bind 0 0
EOF
- ;;
-esac
+fi
+
if [[ $HOSTNAME == frodo ]]; then
- tu /etc/fstab <<EOF
+ fstab <<EOF
$first_root_crypt /i btrfs noatime,subvol=i 0 0
EOF
fi
else
echo "$0: failed to umount $dir"
# lsof will fail if it finds no pids
- if ! e lsof $dir; then
+ if ! e timeout 4 lsof $dir; then
umount_ret=false
ret=1
continue