summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2023-06-05 19:19:44 -0400
committerAndrew Cady <d@jerkface.net>2023-06-05 19:19:44 -0400
commitb6c994d5060a2ab0ac6bb80117f5ac1741df46e6 (patch)
tree087590aa24247af01cd8b0422537eb946d1b6c0c
parentc74ccc8475d4d642a310e3622c4353d541ec7d47 (diff)
handle multiple simultaneous runs and clean up everything
-rwxr-xr-xlist-all-subvolumes5
1 files changed, 3 insertions, 2 deletions
diff --git a/list-all-subvolumes b/list-all-subvolumes
index a5f79cf..2acf772 100755
--- a/list-all-subvolumes
+++ b/list-all-subvolumes
@@ -7,10 +7,11 @@ list_all_subvolumes()
7 for dev in $(list_btrfs) 7 for dev in $(list_btrfs)
8 do 8 do
9 [ -b "$dev" ] || return 9 [ -b "$dev" ] || return
10 d=/run/btrfs-temp-mount/$(systemd-escape "$dev") 10 d=btrfs/$$/$(systemd-escape "$dev")
11 ( 11 (
12 cd /run
12 mkdir -p "$d" || exit 13 mkdir -p "$d" || exit
13 trap 'umount "$d"; rmdir "$d"' EXIT 14 trap 'umount "$d"; rmdir -p "$d" 2>/dev/null' EXIT
14 set -x 15 set -x
15 mountpoint -q "$d" || mount -o ro,subvol=/ "$dev" "$d" || return 16 mountpoint -q "$d" || mount -o ro,subvol=/ "$dev" "$d" || return
16 btrfs subvolume list "$@" "$d" 17 btrfs subvolume list "$@" "$d"