if (( $# )); then
all_vols=( "$@" )
else
- all_vols=(q a o i ar qr)
+ all_vols=(q a o i ar qd qr)
fi
##### end command line parsing ########
if [[ -e $f ]]; then
fstab <<EOF
$crypt_dev /q btrfs noatime,subvol=q,gid=1000$mopts 0 0
+$crypt_dev /qd btrfs noatime,subvol=qd,gid=1000$mopts 0 0
/q/p /p none bind$mopts 0 0
EOF
fi
### end getting root_dir
cd $root_dir
- if [[ -e $vol ]]; then
+ if [[ -e $vol ]]; then
+ if [[ $vol == qd ]]; then
+ m btrfs sub del qd
+ fi
leaf=$vol.leaf.$(date +%Y-%m-%dT%H:%M:%S%z)
m mv $vol $leaf
m btrfs property set -ts $leaf ro true
leaf_vols=($vol.leaf.*)
count=${#leaf_vols[@]}
leaf_limit_time=$(( EPOCHSECONDS - 60*60*24*60 )) # 60 days
- leaf_new_limit_time=$(( EPOCHSECONDS - 60*60*24 )) # 1 day
- # this goes backwards from oldest. leaf_new_limit_time is just in case
- # the order gets screwed up or something.
+ leaf_new_limit_time=$(( EPOCHSECONDS - 60*60*24 * 5 )) # 5 days this
+ # goes backwards from oldest. leaf_new_limit_time is a safety
+ # measure to ensure we don't delete very recent leafs.
for leaf in ${leaf_vols[@]}; do
leaf_time=$(date -d ${leaf#"$vol".leaf.} +%s)
- if (( leaf_limit_time > leaf_time || ( leaf_new_limit_time > leaf_time && count > 15 ) )); then
+ if (( leaf_limit_time > leaf_time || ( leaf_new_limit_time > leaf_time && count > 30 ) )); then
x btrfs sub del $leaf
fi
count=$((count-1))
rm -f /nocow/btrfs-stale/$vol
done
+if (( $ret )); then
+ echo "$0: exit status $ret. see error above"
+fi
exit $ret