Merge remote-tracking branch 'qubesos/pr/5'

* qubesos/pr/5:
  fix VM autostart race condition

Fixes qubesos/qubes-issues#1075

Conflicts:
	linux/aux-tools/prepare-volatile-img.sh
This commit is contained in:
Marek Marczykowski-Górecki 2015-08-01 21:51:02 +02:00
parent a425873e73
commit d27d22a3cf
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -31,20 +31,23 @@ sfdisk --no-reread -u M "$FILENAME" > /dev/null 2> /dev/null <<EOF
,${ROOT_SIZE},L
EOF
loopdev=`losetup -f --show --partscan "$FILENAME"`
udevadm settle
created=
if [ ! -e ${loopdev}p1 ]; then
# device wasn't created automatically, probably udev isn't running;
# create devs manually
for partdev in /sys/block/$(basename ${loopdev})/loop*p*; do
mknod /dev/$(basename ${partdev}) b $(cat ${partdev}/dev | tr : ' ')
done
created=yes
fi
mkswap -f ${loopdev}p1 > /dev/null
if [ "$created" = "yes" ]; then
rm -f ${loopdev}p*
fi
losetup -d ${loopdev} || :
chown --reference `dirname "$FILENAME"` "$FILENAME"
(
flock 200
loopdev=`losetup -f --show --partscan "$FILENAME"`
udevadm settle
created=
if [ ! -e ${loopdev}p1 ]; then
# device wasn't created automatically, probably udev isn't running;
# create devs manually
for partdev in /sys/block/$(basename ${loopdev})/loop*p*; do
mknod /dev/$(basename ${partdev}) b $(cat ${partdev}/dev | tr : ' ')
done
created=yes
fi
mkswap -f ${loopdev}p1 > /dev/null
if [ "$created" = "yes" ]; then
rm -f ${loopdev}p*
fi
losetup -d ${loopdev} || :
chown --reference `dirname "$FILENAME"` "$FILENAME"
) 200>"/var/run/qubes/prepare-volatile-img.lock"