X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=blobdiff_plain;f=mount-latest-subvol;h=ea1d1f89195cc26420e68aa462671d1288eef5c4;hp=a277b55cbc9c9528542e222cc2ae4ce49aab5587;hb=8a6b446c7e336596af614c853e1c6177e55a7983;hpb=48389d89d65d783409b3b746919028dea8fb6219 diff --git a/mount-latest-subvol b/mount-latest-subvol index a277b55..ea1d1f8 100644 --- a/mount-latest-subvol +++ b/mount-latest-subvol @@ -299,6 +299,7 @@ for vol in q a o i; do fi done + # if we unmounted some but not all, restore them and move on if ! $umount_ret; then for dir in ${unmounted[@]}; do mnt $dir @@ -306,6 +307,7 @@ for vol in q a o i; do continue fi + #### begin dealing with leaf vols #### # todo: decipher /mnt/root, like we do in check-subvol-stale cd /mnt/root if [[ -e $vol ]]; then @@ -330,7 +332,7 @@ for vol in q a o i; do if [[ $bsub ]]; then tmp=$(mktemp) # in testing, same subvol is 136 bytes. allow some overhead - btrfs send --no-data -p $bsub $leaf | head -c 1000 > $tmp + btrfs send --no-data -p $bsub $leaf | head -c 1000 > $tmp || [[ $? == 141 ]] if (( $(stat -c%s $tmp) < 1000)); then # example output for an empty diff: # Found a valid Btrfs stream header, version 1 @@ -358,6 +360,8 @@ for vol in q a o i; do done ## end expire leaf vols ## fi + #### end dealing with leaf vols #### + # Note, we make a few assumptions in this script, like # $d was not a different subvol id than $vol, and # things otherwise didn't get mounted very strangely. @@ -367,6 +371,7 @@ for vol in q a o i; do done stale_dir=/nocow/btrfs-stale rm -f $stale_dir/$d + done ### disabled