diff options
author | bad <bad@pkgsrc.org> | 2016-04-04 14:47:19 +0000 |
---|---|---|
committer | bad <bad@pkgsrc.org> | 2016-04-04 14:47:19 +0000 |
commit | a6c52b7320964426f4b7bfe5c70608a1eb1c6a20 (patch) | |
tree | 29fd5d1b6913ce2c796e8f6be8d03299fae158fe /sysutils | |
parent | a387127171e5e8d67de006400fe6afe19c82d496 (diff) | |
download | pkgsrc-a6c52b7320964426f4b7bfe5c70608a1eb1c6a20.tar.gz |
Lock only the minimal critical section in the block hotplug script.
Patch provided my Manuel Bouyer. Thanks!
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/xentools45/distinfo | 4 | ||||
-rw-r--r-- | sysutils/xentools45/patches/patch-hotplug_NetBSD_block | 62 |
2 files changed, 20 insertions, 46 deletions
diff --git a/sysutils/xentools45/distinfo b/sysutils/xentools45/distinfo index 4cee5a47ac9..7a966985a43 100644 --- a/sysutils/xentools45/distinfo +++ b/sysutils/xentools45/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.19 2016/04/04 14:45:12 bad Exp $ +$NetBSD: distinfo,v 1.20 2016/04/04 14:47:19 bad Exp $ SHA1 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = fecadf952821e830ce1a1d19655288eef8488f88 RMD160 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = 539bfa12db7054228250d6dd380bbf96c1a040f8 @@ -31,7 +31,7 @@ SHA1 (patch-firmware_etherboot_Makefile) = f55e14948b7191e533a82b8fc3575f1052f23 SHA1 (patch-firmware_etherboot_patches_series) = 2fa1342c78094c6dd5d60a07c236c4a1c0599fc4 SHA1 (patch-firmware_hvmloader_Makefile) = bc5e81ddfc5e95887c2af4bb32eced9c5748b3c6 SHA1 (patch-hotplug_NetBSD_Makefile) = 6f6ec768b595c332a8757437a64509c0370e52da -SHA1 (patch-hotplug_NetBSD_block) = 6f56f2c5927686ac128cf1913b419be20ce2e99d +SHA1 (patch-hotplug_NetBSD_block) = 243ec06924ba1b711203cb41620e0374dfd172ef SHA1 (patch-hotplug_NetBSD_vif-bridge) = ac4cc7446715330b504b8cce8cbd47c8035cf33c SHA1 (patch-hotplug_NetBSD_vif-ip) = ed23b0c16d87bd05230399d921e28860c5857b01 SHA1 (patch-hotplug_common_Makefile) = 1c8af96a3d0d1d5e9c168b1eb75fabb3e2164a19 diff --git a/sysutils/xentools45/patches/patch-hotplug_NetBSD_block b/sysutils/xentools45/patches/patch-hotplug_NetBSD_block index c2f575fe458..e0d11bf34ff 100644 --- a/sysutils/xentools45/patches/patch-hotplug_NetBSD_block +++ b/sysutils/xentools45/patches/patch-hotplug_NetBSD_block @@ -1,59 +1,33 @@ -$NetBSD: patch-hotplug_NetBSD_block,v 1.1 2016/04/04 14:45:12 bad Exp $ +$NetBSD: patch-hotplug_NetBSD_block,v 1.2 2016/04/04 14:47:19 bad Exp $ Lock the block script to avoid races during vnd configuration. ---- hotplug/NetBSD/block.orig 2015-11-03 10:11:18.000000000 +0100 -+++ hotplug/NetBSD/block 2016-03-25 14:37:34.000000000 +0100 -@@ -6,6 +6,7 @@ +--- hotplug/NetBSD/block.orig 2015-11-03 09:11:18.000000000 +0000 ++++ hotplug/NetBSD/block +@@ -6,8 +6,9 @@ DIR=$(dirname "$0") . "${DIR}/hotplugpath.sh" +. "${DIR}/locking.sh" - PATH=${BINDIR}:${SBINDIR}:${LIBEXEC_BIN}:/bin:/usr/bin:/sbin:/usr/sbin +-PATH=${BINDIR}:${SBINDIR}:${LIBEXEC_BIN}:/bin:/usr/bin:/sbin:/usr/sbin ++PATH=${BINDIR}:${SBINDIR}:${LIBEXEC}:${PRIVATE_BINDIR}:/bin:/usr/bin:/sbin:/usr/sbin export PATH -@@ -14,6 +15,7 @@ - echo "$@" >&2 - xenstore-write $xpath/hotplug-status error \ - $xpath/hotplug-error "$@" -+ release_lock block - exit 1 - } - -@@ -37,10 +39,12 @@ - # device removed - case $xtype in - file) + + error() { +@@ -62,6 +63,7 @@ case $xstatus in + available_disks="$available_disks $disk" + eval $disk=free + done + claim_lock block - vnd=$(xenstore-read "$xpath/vnd" || echo none) - if [ $vnd != none ]; then - vnconfig -u $vnd - fi -+ release_lock block - ;; - phy) - ;; -@@ -52,6 +56,7 @@ - exit 0 - ;; - 2) -+ claim_lock block - case $xtype in - file) - # Store the list of available vnd(4) devices in -@@ -78,6 +83,7 @@ + # Mark the used vnd(4) devices as ``used''. + for disk in `sysctl hw.disknames`; do + case $disk in +@@ -77,6 +79,7 @@ case $xstatus in + break fi done ++ release_lock block if [ x$device = x ] ; then -+ release_lock block error "no available vnd device" fi - xenstore-write $xpath/vnd $device -@@ -89,6 +95,7 @@ - physical_device=$(stat -f '%r' "$device") - xenstore-write $xpath/physical-device $physical_device - xenstore-write $xpath/hotplug-status connected -+ release_lock block - exit 0 - ;; - *) |