From 069b67461cc33d373d030b87744e11ea87fe927e Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Wed, 21 Jun 2023 23:53:06 -0400 Subject: correct counting of btrfs filesystem devices --- src/initrd/btrfs-create.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/initrd/btrfs-create.sh b/src/initrd/btrfs-create.sh index 5a43977..efd8728 100644 --- a/src/initrd/btrfs-create.sh +++ b/src/initrd/btrfs-create.sh @@ -233,11 +233,14 @@ choose_uuid() uniq | sort -nr | head -n1 | (read _ x; echo $x) } +num_devices() +{ + btrfs inspect-internal dump-super "$1" | sed -ne 's/^num_devices\t\t*//p' +} + filesystem_incomplete() { - local n - n=$(btrfs filesystem show "$1" | sed -ne 's/.*Total devices \([^ ]*\) .*/\1/p') - [ "$n" != 1 ] + [ "$(num_devices "$1")" != 1 ] } partition_new_hard_drive_DESTROYING_EVERYTHING() @@ -276,8 +279,7 @@ open_samizdat() btrfs device scan -u || true if ! btrfs device scan || ! btrfs device ready "$blockdev" then - devcount=$(btrfs inspect-internal dump-super "$blockdev" | grep -c dev_item.devid) - if [ "$devcount" -eq 1 ] + if ! filesystem_incomplete "$blockdev" then btrfstune -m "$blockdev" btrfs device ready "$blockdev" || : get used to disappointment -- cgit v1.2.3