소스 검색

nuke-graph-directory.sh: Improve subvolume search

This change allows btrfs subvolumes to be found in additional system
configurations. The old logic failed to correctly identify subvolumes
when the root fs was mounted as a subvolume that was not the btrfs
filesystem root.

Signed-off-by: Adam Mills <adam@armills.info>
Adam Mills 9 년 전
부모
커밋
c3aa75c5a7
1개의 변경된 파일4개의 추가작업 그리고 7개의 파일을 삭제
  1. 4 7
      contrib/nuke-graph-directory.sh

+ 4 - 7
contrib/nuke-graph-directory.sh

@@ -51,13 +51,10 @@ done
 
 
 # now, let's go destroy individual btrfs subvolumes, if any exist
 # now, let's go destroy individual btrfs subvolumes, if any exist
 if command -v btrfs > /dev/null 2>&1; then
 if command -v btrfs > /dev/null 2>&1; then
-	root="$(df "$dir" | awk 'NR>1 { print $NF }')"
-	root="${root%/}" # if root is "/", we want it to become ""
-	for subvol in $(btrfs subvolume list -o "$root/" 2>/dev/null | awk -F' path ' '{ print $2 }' | sort -r); do
-		subvolDir="$root/$subvol"
-		if dir_in_dir "$subvolDir" "$dir"; then
-			( set -x; btrfs subvolume delete "$subvolDir" )
-		fi
+	# Find btrfs subvolumes under $dir checking for inode 256
+	# Source: http://stackoverflow.com/a/32865333
+	for subvol in $(find "$dir" -type d -inum 256 | sort -r); do
+		( set -x; btrfs subvolume delete "$subvol" )
 	done
 	done
 fi
 fi