[gnome-hwtest] Use partprobe rather than losetup -P



commit 411337bb01173e50d8eddcf54eae5bd92c0d303f
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Thu Jun 26 16:11:32 2014 -0400

    Use partprobe rather than losetup -P
    
    With a 3.14 kernel, losetup -P does not reliably result in partition
    scanning - call partprobe from partedit instead.

 src/gnome-hwtest-make-boot-image   |    8 +++++++-
 src/gnome-hwtest-update-controller |    4 ++--
 2 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/src/gnome-hwtest-make-boot-image b/src/gnome-hwtest-make-boot-image
index 65d1ffc..22a6aae 100644
--- a/src/gnome-hwtest-make-boot-image
+++ b/src/gnome-hwtest-make-boot-image
@@ -36,7 +36,8 @@ parted -s -a min ${image_file}.tmp -- \
     mklabel msdos \
     mkpart primary fat32 512s -1s
 
-dev=`losetup -f -P --show ${image_file}.tmp`
+dev=`losetup -f --show ${image_file}.tmp`
+partprobe $dev
 mntdir=`mktemp -d /tmp/bootdisk.XXXXXXXXXX`
 memdir=`mktemp -d /tmp/bootmem.XXXXXXXXXX`
 memdisk=`mktemp /tmp/bootmemdisk.XXXXXXXXXX`
@@ -61,6 +62,11 @@ EOF
 
 (cd $memdir && echo boot/grub/grub.cfg | cpio -o > $memdisk)
 
+# Wait for partition scan to complete if it hasn't already
+while [ \! -e ${dev}p1 ] ; do
+    sleep 0.1
+done
+
 # -I is needed because mkfs.vfat in the version we have currently yocto
 # is not detecting /dev/loop0p1 as a partition
 mkfs -t vfat -I -n HWTEST_GRUB ${dev}p1
diff --git a/src/gnome-hwtest-update-controller b/src/gnome-hwtest-update-controller
index a1e4ac2..1035661 100755
--- a/src/gnome-hwtest-update-controller
+++ b/src/gnome-hwtest-update-controller
@@ -31,7 +31,8 @@ sysroot=/tmp/upgraderoot
 repo=$sysroot/ostree/repo
 
 need_cleanup=true
-loop=`losetup -f -P --show /dev/disk/by-partlabel/gnome-hwtest-controller-export`
+loop=`losetup -f --show /dev/disk/by-partlabel/gnome-hwtest-controller-export`
+partprobe $loop
 cleanup() {
     if $need_cleanup ; then
         umount $sysroot/boot || true
@@ -44,7 +45,6 @@ trap cleanup EXIT INT TERM
 
 mkdir -p $sysroot
 while [ \! \( -e /dev/disk/by-label/hwt-updater-r -a -e /dev/disk/by-label/hwt-updater-b \) ] ; do
-    ls -l /dev/disk/by-label
     sleep 0.1
 done
 mount /dev/disk/by-label/hwt-updater-r $sysroot


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]